2017-07-06 89 views
-1

我尝试筛选具有特定类别的Book类的作者,但无法获得确切的类别。两个表格筛选器

models.py

class Book(models.Model): 
    category = models.CharField() 
    foreignkey = models.ForeignKey(Author, related_name="auth") 
class Author(models.Model): 
    author_id = models.IntegerField(primary_key=True) 

views.py

book = models.Book.objects.filter(category = 'Space') 
author = models.Author.objects.filter(author_id__in = book) 
+0

'book = models.Book.objects.filter(category ='Space')'但是您的Book类中的类别是'models.IntegerField()'。可以过滤'category = '或将类别更改为'models.CharField()'。另外,你用你的作者过滤器试着做什么? – Bott0610

+0

对不起,我举了一个错误的例子。 – max

回答

0
class Book(models.Model): 
    category = models.CharField() 
    author = models.ForeignKey(Author, related_name='books') 

class Author(models.Model): 
    name = models.CharField() 


books = Book.objects.values('author_id',flat=True).filter(category='Space') 
authors = Author.objects.filter(pk__in=books) 
0
class Book(models.Model): 
    category = models.CharField() 
    author = models.ForeignKey(Author, related_name='books') 

class Author(models.Model): 
    # pks are added automatically 

在views.py

books = models.Book.objects.filter(category='Space') 
authors = models.Author.objects.filter(pk__in=[b.author_id for b in books]) 
+0

'书'没有属性名称id,我修改它为'b.author'仍然不起作用。 – max