在我的模型中,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"),)
出于这个原因,我在Meta类中定义了它。但是,而不是表单验证警告,我在保存时收到错误。可能是什么原因?
/ vendor / manufacture_material / new / 1 / http://127.0.0.1:8000/vendor/company/company_am_details/1//中的IntegrityError 列AM_id,company_id不是唯一的
更新: 形式:
class Vendor_AMForm(forms.ModelForm):
class Meta:
model = Vendor_AM
fields = [ 'AM','recomendedprice','is_active' ]
我直接在视图中填充公司。
答案 0 :(得分:1)
表单只能验证它实际包含的字段。由于您已从表单中排除company
,因此无法验证公司和AM的组合。