我有2个模型,对此问题进行了简化。在Article
模型中,如何基于choices=
模型中具有特定Article.status
值的条目来限制字段Category
的{{1}}?
Category.type
为了透明起见,我知道我之前已经做过,但是我似乎不记得如何做或在我做过的地方找到项目。就像解决方案刚刚消失在我身上... * poof * 。魔术。
编辑:更改为class Article(models.Model):
name = models.CharField(max_length=100)
# Set choices= only to values of Category which have a type of 'foo'
status = models.ForeignKey(Category)
class Category(models.Model):
name = models.CharField(max_length=10)
type = models.CharField(max_length=10)
。
答案 0 :(得分:1)
您可以在models.py中使用诸如limit_choices_to之类的东西:
category = model.ForeignKey(Category,limit_choices_to={'type':'the type you want'}
如果您想要更动态或更详细的信息,可以在ModelForm的 init 中指定特定字段的自定义查询集,例如:
self.fields['category'].queryset = Category.objects.filter(type='type_you_wanted')
如果要根据表单中选择的类别动态显示类别,则应看到以下内容:https://simpleisbetterthancomplex.com/tutorial/2018/01/29/how-to-implement-dependent-or-chained-dropdown-list-with-django.html