Django模型基于另一个模型限制选择,但具有特定的字段值

kknvjkwl  于 2023-10-21  发布在  Go
关注(0)|答案(1)|浏览(128)

我有两个模型,简化了这个问题。在Article模型中,如何根据Category模型中具有特定Category.type值的条目来限制字段Article.statuschoices=

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.CharField(max_length=10, choices=)

class Category(models.Model):
  name = models.CharField(max_length=10)
  type = models.CharField(max_length=10)

对于透明度,我知道我以前做过这件事,但我似乎不记得如何或找到我做的项目。就像解决办法在我身上消失了...噗。魔法

bq3bfh9z

bq3bfh9z1#

你可以在你的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

相关问题