2015-01-09 3 views
0

두 개의 테이블, 저자와 책이 있습니다. 각 저자는 단 하나의 저자에 의해 단점으로 쓰여지고, 저자는 여러 책을 쓸 수 있습니다. 코드, 단일 저자가 만든 도서 목록을 얻고 싶습니다.(1241, '피연산자는 1 개의 열을 포함해야 함')

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

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) 

당신은 Book 모델에 외래 키를 놓아야합니다

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

     {% endfor %} 

답변

0

템플릿 :보기에

class Author(models.Model): 
    name_auth = models.CharField(max_length=256) 

    def __unicode__(self): 
      return self.name_auth 

class Book(models.Model): 
    user = models.OneToOneField(User, related_name='user') 
    author = models.ForeignKey(Author) 
    name = models.CharField() 

    def __unicode__(self): 
      return self.name 

:

from django.shortcuts import render, get_object_or_404 

def author_books(request): 
    book = get_object_or_404(Book, user=request.user) 
    return render(request, 'author_books.html', {'author': book.author}) 

템플릿 :

{% for book in author.book_set.all %} 
    <div>{{ book.name }}</div> 
{% endfor %} 

편집 : user 필드 Author 모델에 있어야 할 수 있습니까? 예 다음 경우

class Author(models.Model): 
    user = models.OneToOneField(User, related_name='user') 
    name_auth = models.CharField(max_length=256) 

    def __unicode__(self): 
      return self.name_auth 

class Book(models.Model): 
    author = models.ForeignKey(Author) 
    name = models.CharField() 

    def __unicode__(self): 
      return self.name 

보기 :

from django.shortcuts import render, get_object_or_404 

def author_books(request): 
    author = get_object_or_404(Author, user=request.user) 
    return render(request, 'author_books.html', {'author': author}) 

템플릿은 상기와 동일합니다.

+0

답장을 보내 주셔서 감사합니다. 아무 것도 보이지 않았으므로이 방법으로 저자를 얻습니다. author1 = Author.objects.filter (user = request.user) .values ​​()와 저는이 저자가 작성한 책을 얻고 싶습니다 (author1). – hayat

0

조건을 변경하면 각 저자는 여러 저자에 의해 작성되고 저자는 하나의 책을 만들 수 있으며 단일 저자가 만든 책 목록을 가져오고 싶습니다. 내 서식 파일에서 한 책을 쓴 저자를 볼 수 있습니다.

관련 문제