我想知道如何在中級模型formset上指定一些約束。 我有3類模型: 屬性,產品和AttributeValuation,這是屬性和產品中間體:中級模型formset驗證
class Attribute(models.Model):
type = models.CharField(max_length = 200)
pass
class Product(models.Model):
attribute_values = models.ManyToManyField(Attribute, through='AttributeValuation')
class AttributeValuation(models.Model):
attribute = models.ForeignKey(Attribute)
product = models.ForeignKey(Product)
最重要的是,我已經建立AttributeValuationInline與AttributeFormset,並註冊到ProductAdmin:
class AttributeValuationInline(admin.TabularInline):
model = AttributeValuation
extra = 0
formset = AttributeFormset
class ProductAdmin(admin.ModelAdmin):
inlines = (AttributeValuationInline,)
class AttributeFormset(BaseInlineFormSet):
def clean(self):
pass
我的問題是:我該如何檢查乾淨的方法每個內聯行的內容(表格)?我已經試過了Formset中的每個self.forms形式,但是我無法訪問Attribute模型的特定字段(想象一下,我不想用不相關的數據來混淆我的問題)?
在我的示例中,我希望每個產品的每個類型最多有一個屬性(以便沒有人將兩個或多個屬性與同一個產品關聯到同一類型)。