0

저자와 도서의 두 개의 표가 있습니다. 각 저자는 다중 저자에 의해 작성되었으며, 작성자는 (하나의) 책을 작성할 수 있습니다. 책 목록을 가져오고 싶습니다. 한 명의 저자가 만들었습니다. 내 템플릿에서 나는 한 권의 책외장 키의 경우 django에 대한 요청

을 쓴 저자을 볼 것

내 models.py

class Book(models.Model): 
     user = models.OneToOneField(User,related_name='user') 
     name = models.CharField(default=0) 
     def __unicode__(self): 
       return u'%s' % self.user 

class author(models.Model): 
     name_auth = models.CharField(max_length=256) 
     Book = models.ForeignKey(compte) 
     def __unicode__(self): 
       return u'%s' % (self.name_auth) 

내 view.py

Book1 =Book.objects.filter(user=request.user).values() 
Book1_id= Book1.id 
author = Author.objects.filter(pk=Book1_id).values 
reponse[author]=author 

내 템플릿

{% for t in author %} 
          <td>{{ t.name }}</td> 

     {% endfor %} 
+1

난 당신을 통해 읽기의 기초를 연습 추천을 [ 튜토리얼] (https://docs.djangoproject.com/ko/1.7/intro/tutorial01/). 질문에 부족한 점은 질문입니다. "내 코드를 디버그하십시오"와 같이 더 생겼습니다. –

+0

추천 해 주셔서 감사합니다. 초보자이며 문제에 대한 답변을 찾지 못했으며 여기에이 메시지를 게시해야합니다. – Hayat

+0

자습서를 통해 직접 작업하는 것이 도움이되는 이유입니다. 그것은 당신의 코드의 실패를 분명히 할 것입니다. 날 믿어. –

답변

0

귀하의 진술에 따르면 귀하의 모델에있는 논리가 잘못되었습니다 ...

당신은 책의 저자 표현하기 위해 ManyToManyField를 사용할 필요가

"A 책은 여러 저자을 가질 수있다"

class Author(models.Model): 
    user = models.OneToOneField(User) 

    def __unicode__(self): 
     return self.user.get_full_name() 

class Book(models.Model): 
    authors = models.ManyToManyField(Author) 
    name = models.CharField(max_length=500) 

    def __unicode__(self): 
     return self.name 


# views 

from django.shortcuts import render, get_object_or_404 

def book_detail(request, book_id): 
    book = get_object_or_404(Book, id=book_id).prefetch_related('authors') 

    return render(request, 'book_detail.html', {'book': book}) 


# book_detail.html 

{% for author in book.authors.all %} 
    {{ author }} 
{% endfor %} 
관련 문제