在django admin中筛选选择字段选项
我正在使用我的一个项目,这是基于django管理。我需要一个案子的帮助。假设我有两个这样的模型-在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
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)都可以选择。我想过滤选项,只提供选项A的Foos
我该怎么做?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中过滤选择字段选项的内容,因为它可以应用于更一般的情况。我的答案不仅适用于使用您的软件包的人。不管怎样,这只是一个命题。我在阅读文档后已经应用了多个条件。不过还是谢谢你。