Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模型限制基于另一个模型但具有特定字段值的选项_Python_Django_Django Models - Fatal编程技术网

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

Python Django模型限制基于另一个模型但具有特定字段值的选项,python,django,django-models,Python,Django,Django Models,我有两个模型,简化了这个问题。在文章模型中,如何根据类别模型中具有特定类别.类型值的条目限制文章.status字段的选项 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 C

我有两个模型,简化了这个问题。在
文章
模型中,如何根据
类别
模型中具有特定
类别.类型
值的条目限制
文章.status
字段的
选项

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)
为了透明起见,我知道我以前做过这件事,但我似乎不记得我是怎么做的,也不记得我在哪里找到了这个项目。就像解决方案在我身上消失了…*噗*。魔法


编辑:更改为
模型。ForeignKey

您可以在模型中使用类似于限制选项的内容。py:

category = model.ForeignKey(Category,limit_choices_to={'type':'the type you want'}
如果需要更动态或更详细的内容,可以在模型表单的init中指定特定字段的自定义查询集,如:

self.fields['category'].queryset = Category.objects.filter(type='type_you_wanted')

如果您想根据表单中选择的category.type动态显示类别,那么您应该看到:

以及
category.type
Article.status
?您可以设置
status=models.ForeignKey(类别)
这将限制基于
类别中的条目的选择这正是我想要的。我怎么能忘记
将选择限制在
CharField
中更大的错误类型,而不是
ForeignKey
。谢谢你,我的朋友。学到了一些新的东西,谢谢