2013-10-30 51 views
0

Resuing Django的例子:查询记录未通过表

from django.db import models 

class Publication(models.Model): 
    title = models.CharField(max_length=30) 

class Article(models.Model): 
    headline = models.CharField(max_length=100) 
    publications = models.ManyToManyField(Publication)  

如何我获得不具有出版物的所有文章?

Article.objects.filter(...) 

回答

0

指定publications为无:

Article.objects.filter(publications=None) 

例子:

>>> p1 = Publication.objects.create(title='1') 
>>> p2 = Publication.objects.create(title='2') 
>>> a1 = Article.objects.create(headline='a') 
>>> a2 = Article.objects.create(headline='b') 
>>> a3 = Article.objects.create(headline='c') 
>>> a1.publications.add(p1) 
>>> a1.publications.add(p2) 
>>> a3.publications.add(p1) 
>>> Article.objects.filter(publications=None) 
[<Article: Article object>] 
>>> _[0].headline 
u'b' 
0
Article.objects.filter(publications=None) 

定义空白=真与出版物场到第四模型要不然也不会允许你创建文章没有出版物。

publications = models.ManyToManyField(Publication, blank=True)