django - 过滤 Django 管理员选择框的模型结果

标签 django model

我今天刚开始玩 Django,到目前为止,我发现做简单的事情相当困难。我现在正在努力的是过滤状态类型列表。 StatusTypes 模型是:

class StatusTypes(models.Model):
    status = models.CharField(max_length=50)
    type = models.IntegerField()
    def __unicode__(self):
        return self.status
    class Meta:
        db_table = u'status_types'

在一个管理页面中,我需要 type = 0 的所有结果,而在另一个管理页面中,我需要 type = 1 的所有结果,因此我不能只在模型中对其进行限制。我该怎么做呢?

编辑:我应该更清楚一点。我有一个模型“单元”,它有一个到 StatusTypes 的外键。型号如下:
class StatusTypes(models.Model):
    status = models.CharField(max_length=50)
    type = models.IntegerField()
    def __unicode__(self):
        return self.status
    class Meta:
        db_table = u'status_types'

class Unit(models.Model):
    name = models.CharField(unique=True, max_length=50)
    status = models.ForeignKey(StatusTypes, db_column='status')
    note = models.TextField()
    date_added = models.DateTimeField()
    def __unicode__(self):
        return self.name
    class Meta:
        db_table = u'units'

所以现在在单元模型的管理页面中,我想将状态限制为只有 type = 1 的状态。基于下面的 lazerscience 响应,我尝试了以下代码:
from inv.inventory.models import Unit
from django.contrib import admin

class UnitAdmin(admin.ModelAdmin):
    def queryset(self, request):
        qs = super(UnitAdmin, self).queryset(request)
        return qs.filter(type=0)

admin.site.register(Unit, UnitAdmin)

但是,它根本没有改变选择框。我还尝试打印 qs 的值,但没有任何内容输出到我的终端,所以我想知道我是否必须调用查询集?

编辑 2:可能不清楚我想为单元模型的创建页面上的状态下拉列表过滤它。

最佳答案

编辑:

事实证明,在这种情况下 ModelAdmin.formfield_for_foreignkey 是正确的答案:
http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_foreignkey

以前的答案:

看看list_filter attribute of ModelAdmin .这听起来更像是你想要的,因为它会创建一个很好的界面来过滤不同的标准,而不是随意限制你的查询集。

关于django - 过滤 Django 管理员选择框的模型结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3047839/

相关文章:

php - Laravel:嵌套 Controller 并使父 Controller 重定向到子 Controller ?

django - 将模型的实例传递给 django 表单集

python - edX 供应问题 : get stuck at, 任务:[edxapp |将 edx-platform repo check out 到 {{edxapp_code_dir}}]

php - 如何在 spatie 权限包中列出所有具有权限的角色?

ruby-on-rails - Ruby on Rails 中多态模型的作用域

ios - Swift TableView 人口

cakephp - 使用 cakephp 中模型类的 Controller 方法

python - 使用查询中的对象填充选择字段

Django ModelChoiceField 下拉框自定义填充

python oauthlib : in escape ValueError "Only unicode objects are escapable"