2016-07-23 40 views
0

在2场(公司,AM)的我的模型组合应该是唯一的为什么独一无二不会阻止非独特的价值?

class Vendor_AM(models.Model): 
    version = IntegerVersionField() 
    company = models.ForeignKey(V_Company, on_delete=models.PROTECT) 
    AM = models.ForeignKey(AM, on_delete=models.PROTECT) 
    recomendedprice = MoneyField(max_digits=10, decimal_places=2, default_currency='USD') 
    price = MoneyField(max_digits=10, decimal_places=2, default_currency='USD') 
    is_active = models.BooleanField(default=True) 
    def __unicode__(self): 
     return u'%s %s %s' % (self.id, self.AM.material.name , self.company.name) 

    class Meta: 
     unique_together = (("AM", "company"),) 

出于这个原因,我有它在类中定义元。但是,而不是形式验证警告,我得到一个保存错误。可能是什么原因?

IntegrityError在/供应商/ manufacture_material /新/ 1/http://127.0.0.1:8000/vendor/company/company_am_details/1// 列AM_id,COMPANY_ID不是唯一

UPDATE: 形式:

class Vendor_AMForm(forms.ModelForm): 

    class Meta: 
     model = Vendor_AM 
     fields = [ 'AM','recomendedprice','is_active' ] 

我填充公司直接在风景。

+0

您如何验证?你的表单是什么样的? –

+0

你是否正确迁移数据库? –

+0

我没有在表单中验证。我假设如果我有独特的一起验证是照顾。 –

回答

1

表单只能在其实际包含的字段上进行验证。由于您从表格中排除了company,因此公司和AM的组合无法验证。

+0

谢谢。当你问一个表单时,我开始考虑这个问题。当保存在视图中时添加了“除了IntegrityError”以捕捉它。 –