2013-03-14 44 views
0
class WPArticle(models.Model): 
    title = models.TextField(unique=True) 
    content = models.TextField() 
    source = models.URLField() #article source 
    ctime = models.DateTimeField(auto_now_add=True) 
    mtime = models.DateTimeField(auto_now=True,auto_now_add=True) 
    post_tag = models.CharField(max_length=200) 
    category = models.CharField(max_length=200) 

    def __unicode__(self): 
     return self.title 

class WPSendRecord(models.Model): 
    wpconf = models.ForeignKey(WPConf) 
    wparticle = models.ForeignKey(WPArticle) 
    ctime = models.TimeField(auto_now=True,auto_now_add=True) 

    def __unicode__(self): 
     return self.wparticle.title 

我想查询所有不属于WPSendRecord的WPArticle?如何编写代码?过滤数据是否存在于其他模型中?

+0

您的文章会更容易,如果你使用四个空间缩进,而不是标签阅读 - 我所做的编辑为您服务。 – JohnJ 2013-03-14 14:48:30

回答

1

可以使用exclude QuerySet的方法:

articles = WPArticle.objects.exclude(wpsendrecord__isnull=True) 
+0

对django中* exclude *方法的所有调用都被认为是代码的可移植性和可维护性的漏洞。如果你问我,最好明确一点。 – Private 2013-03-14 16:17:09

+0

我不确定我是否理解,为什么它不便携或维护? – 2013-03-15 09:18:16

+0

嗨蒂米。也许我夸大了我的情况。我已经阅读了django的两篇文章,指出当你更改模型后必须调试时,显式调用字段更容易。这更多的是在forms.py中使用'exclude'或'fields'的情况。 – Private 2013-03-16 08:08:18

相关问题