2015-01-09 75 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) 

模板

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

     {% endfor %} 

回答

0

你應該把外鍵Book型號:

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

感謝您的回覆,inhapilly它沒有顯示任何東西,我用這種方法得到作者:author1 = Author.objects.filter(user = request.user) .values()和我希望得到的書是由這個作者寫的(author1) – hayat

0

如果我改變了條件,每本書都是由多個作者編寫的,對作者可以創建一本書,我想獲得由單個作者創建的書列表。在我的模板中,我會查看作者誰寫了一本書

相關問題