2016-02-12 50 views
1

我在我的模型類2場如何將Django中的2個模型字段組合在一起?

class A(model.Model): 
    field1 = models.ImageField(upload_to='path', null=True) 
    field2 = models.URLField(null=True) 

我需要團結,這樣,如果第一場是滿的,第二場無法填補。反之亦然。

我嘗試創建類的Meta類領域unique_together:

class Meta: 
    unique_together = (field1, field2) 

但在這種情況下,兩個字段不能爲空,既可以是全。但我需要只有1個字段必須滿。

+1

我不知道有什麼事,在模型級別執行此操作。爲什麼不在表單層面強制執行呢? https://docs.djangoproject.com/zh/dev/ref/forms/validation/#cleaning-and-validating-fields-that-depend-on-each-other – Tareq

+0

在這一刻,我在視圖層面做到這一點,但我想在模型層面上做到這一點 –

回答

1

自定義保存()方法,在你的模型:

def save(self, *args, **kwargs): 
    if not self.field1: 
     self.field2 = ... 
    if not self.field2: 
     self.field1 = ...  
    super(A,self).save(*args,**kwargs) 
相關問題