2017-05-24 1 views
0

나는 장고를 처음 사용했습니다. 아래는 코드 구조입니다. 설명해 드리겠습니다.Django 외래 키 ID 값을

기본적으로 index.html 페이지에서 오늘의 모든 기사 (오늘은 publication_date)를 보여줍니다. 이제 그들은 정확하게 보여주고 있습니다, 문제는 또한 회사 슬러그를 보여주고 싶다는 것입니다. 현재 나는 Company_id를 출력하고 있는데 어떻게 변환 할 수 있습니까?

model.py

class Company(models.Model): 
    name = models.CharField(max_length=128, default='X') 
    slug = models.SlugField(max_length=6, default='X', unique=True) 

    def get_absolute_url(self): 
     return reverse('news:detail',kwargs={'pk': self.pk}) 

    def __str__(self): 
     return self.slug 

class Article(models.Model): 
    title = models.CharField(max_length=256, unique=True) 
    publication_date = models.DateTimeField() 
    url = models.CharField(max_length=256) 
    Company = models.ForeignKey(Company, on_delete=models.CASCADE) 

    def __str__(self): 
     return self.title 

views.py

class IndexView(generic.ListView): 
    template_name = 'news/index.html' 
    context_object_name = 'all_companies' 

    def get_queryset(self): 
     return Company.objects.all() 

    def get_context_data(self, **kwargs): 

     context = super(IndexView, self).get_context_data(**kwargs) 

     now = datetime.datetime.now() 
     articlesToday = Article.objects.filter(publication_date__year=now.year,publication_date__month=now.month,publication_date__day=now.day) 
     context['articlesToday'] = articlesToday 

     return context 

index.html을

<table class="table"> 
    {% for art in articlesToday %} 
     <tr> 
      <td>{{art.title}}</td> 
      <td>{{art.Company_id}}</td> 
     </tr> 
    {% endfor %} 
</table> 

답변

1
<table class="table"> 
    {% for art in articlesToday %} 
     <tr> 
      <td>{{art.title}}</td> 
      <td>{{art.Company.slug}}</td> 
     </tr> 
    {% endfor %} 
</table> 

이 시도 할 수 있습니다, 그것은 회사의 슬러그를 표시합니다

+0

필드 이름으로 대문자 C를 사용하려했으나 아무 것도 출력하지 않습니다. – Sharpless512

+0

. 나는 작은 C를 사용했다 – Exprator

+0

자본 C 작품! 감사합니다 – Sharpless512