我有一个问题的动态设计的管理。
我希望在选择productType时动态筛选选定的productCategory。
例如,我在models.py(产品类别.对象.筛选器(产品类型=2或1或4 ...(我不能动态))
中手动执行此操作
models.py
class ProductType(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(max_length=200, unique=True)
class ProductCategory(models.Model):
productType = models.ForeignKey(ProductType, on_delete=models.CASCADE)
name = models.CharField(max_length=200)
slug = models.SlugField(max_length=200, unique=True)
class Product(models.Model):
category = models.ForeignKey(Category, on_delete=models.CASCADE)
brand = models.ForeignKey(Brand, on_delete=models.CASCADE)
productType = models.ForeignKey(ProductType, on_delete=models.CASCADE, default=1)
productCategory = models.ForeignKey(ProductCategory, on_delete=models.CASCADE)
enter code here
admin.py
class ProductForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ProductForm, self).__init__(*args, **kwargs)
if self.instance:
self.fields['productCategory'].queryset = ProductCategory.objects.filter(productType=self.instance.productType.id)
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
form = ProductForm
1条答案
按热度按时间dfty9e191#
我想了很长时间,但还没有解决。但我可以告诉你为什么这是不工作。
问题是self.instance.productType.id为“无,”因为您尚未选择.
试着像这样输入print(),你就会明白为什么它不起作用。