2013-03-14 45 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

相關問題