Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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
在django admin中筛选选择字段选项_Django_Django Models_Django Forms_Django Admin_Django Admin Filters - Fatal编程技术网

在django admin中筛选选择字段选项

在django admin中筛选选择字段选项,django,django-models,django-forms,django-admin,django-admin-filters,Django,Django Models,Django Forms,Django Admin,Django Admin Filters,我正在使用我的一个项目,这是基于django管理。我需要一个案子的帮助。假设我有两个这样的模型- class Foo(models.Model): CHOICES = ( ('a', 'Option A'), ('b', 'Option B') ) status = models.CharField(max_length=10, choices=CHOICES) class Bar(models.Model): foo = mod

我正在使用我的一个项目,这是基于django管理。我需要一个案子的帮助。假设我有两个这样的模型-

class Foo(models.Model):
    CHOICES = (
        ('a', 'Option A'),
        ('b', 'Option B')
    )
    status = models.CharField(max_length=10, choices=CHOICES)

class Bar(models.Model):
    foo = models.ForeignKey(Foo)
    remarks = models.CharField(max_length=200)
在xadmin中,当我尝试通过xadmin提供的默认表单添加栏时,在选择字段Foo中,所有Foo(带有选项A和选项B)都可以选择。我想过滤选项,只提供选项AFoos

我该怎么做?xadmin中是否有任何方法,我应该调用或自定义以实现它

看一看

编辑

考虑文档中的示例:

staff_member = models.ForeignKey(
    User,
    on_delete=models.CASCADE,
    limit_choices_to={'is_staff': True},
)
使ModelForm上的相应字段仅列出用户 这是真的。这可能对Django管理员有所帮助


因此,这是一种在相应字段上添加限制的简单方法

在多个条件下限制选择:

staff_member = models.ForeignKey(
User,
on_delete=models.CASCADE,
limit_choices_to={'is_staff': True,is_superuser':False},)

我们可以在模型中添加多个限制选择选项。

具有多个字段的限制选择过滤器,带有Q对象:

from django.db.models import Q

limit_to = Q(username="stack") & Q(is_staff=True) & Q(is_active=True)

谢谢让我试试。但是你应该在你的答案中添加一些解释,而不仅仅是一个链接。如果你需要的话,我可以,但我不想重复。在这种情况下,医生是非常清楚的。告诉我进展如何,我的问题解决了。但是你可以添加一些描述,即使它在文档中很清楚。这对每个人都有好处。更新了答案。另外,如果我是你,我会将问题的标题改为类似于django admin中过滤选择字段选项的内容,因为它可以应用于更一般的情况。我的答案不仅适用于使用您的软件包的人。不管怎样,这只是一个命题。我在阅读文档后已经应用了多个条件。不过还是谢谢你。