如何在Django中向ModelAdmin添加条件字段?

时间:2016-05-07 03:49:03

标签: python django django-admin

我有模型类:

class Product(models.Model):
    category = models.ForeignKey(Category)
    name = models.CharField(max_length=90)
    ...
class Category(models.Model):
    name = models.CharField(max_length=90)
    description = models.CharField(max_length=2000)
    properies = models.ManyToManyField(Property)
    ...
#property type, ex: 'weight', 'length'
class Property(models.Model):
    ...
#value for every product
class PropertyValue(models.Model):
    product = models.ForeignKey(Product)
    property = models.ForeignKey(Property)
    ...

我需要自定义产品/添加/页面,具有PropertyValue表单集取决于所选类别。 我已经在ModelAdmin类中通过category_id创建了一个获取PropertyValue列表的方法,但是如何在选择的类别更改时在运行时调用它? django有可能吗?

1 个答案:

答案 0 :(得分:0)

你在运行时说的是什么意思。如果这些类别发生变化,则每次加载添加页面时都会显示新记录。

你做表格课吗?种类:

class PropertyValueForm(forms.Form):
    product = forms.ModelChoiceField(queryset=Product.objects.all())
    property = forms.ModelChoiceField(queryset=Property.objects.all())

或者:

def getProduct():
    # DO YOUR STUFF
    return product_list

class PropertyValueForm(forms.Form):
    product  = forms.ChoiceField(choices=get_my_choices())