假装在 Django admin 中有 4 个内联表单,每个表单都有一对字段选择,“属性”和“值选项”。我们有第一对,它用一个值初始化字段一个,例如颜色和其他字段,您必须有一个查询集选择。
请检查图像
正如你所看到的,我需要用它们的默认值过滤每一对,如果颜色应该只显示白色、黑色和蓝色。
class ProductAttributeValueForm(forms.ModelForm):
attribute = forms.ModelChoiceField(label=_('Attribute'),
widget=forms.Select(attrs={'disabled': 'True'}),
queryset=ProductAttribute.objects.all(), required=False)
class ProductAttributeValueFormSet(BaseInlineFormSet):
def __init__(self, *args, **kwargs):
super(ProductAttributeValueFormSet, self).__init__(*args, **kwargs)
# This return initial [{'attribute' initial}, {..}, {..}]
self.initial = [{'attribute': a} for a in obj.category.attributes.all()]
# Now we need to make a queryset to each field of each form inline
self.queryset = [{'value_option' .. }, { .. }]
我所做的是用一个值初始化每个属性,例如 Color 并将一个查询集传递给 value_option 及其各自的值,白色、蓝色和黑色。两天前我尝试过这样做,但我没有完成任何事情,如果解决方案是在表单上或在管理员的任何功能中