首页 > 解决方案 > 'list_filter[0]' 的值是指 'people__type',而不是指一个 Field

问题描述

第一次在这里问一个问题,如果我做得不完美,很抱歉。

上下文:django 中的项目,试图在我的管理面板中有一个过滤选项。

我的 model.py 文件中有这个 Charfield,我试图将其用作 admin.py 中的过滤器,但是 python 告诉我它没有引用一个非常令人困惑的字段。这是我的代码:

模型.py

class People(models.Model):
    OWNER = 'owner'
    TENANT = 'tenant'
    TYPES = ((OWNER, 'Owner'), (TENANT, 'Tenant'))
    type = models.CharField(max_length=20, choices=TYPES)
    people_name = models.CharField(max_length=200)
    people_surname = models.CharField(max_length=200)
    people_phone_number = models.CharField(max_length=200)
    people_email = models.EmailField(max_length=254)
    people_occupation = models.CharField(max_length=200)
    people_revenue = models.IntegerField()
    people_slug = models.CharField(max_length=200, default=1)

    def __str__(self):
         return self.people_name

管理员.py

from django.contrib import admin from django.db import models from .models import * from tinymce.widgets import TinyMCE

#在此处注册您的模型。

class PeopleAdmin(admin.ModelAdmin):

    fieldsets = [
        ("Type", {"fields": ["type"]}),
        ("Information", {"fields": ["people_name",
                                    "people_surname",
                                    "people_phone_number",
                                    "people_email",
                                    "people_occupation",
                                    "people_revenue"]}),
        ("URL", {"fields": ["people_slug"]}),
    ]

list_filter = ('people__type',)

admin.site.register(People, PeopleAdmin)

标签: pythondjango

解决方案


代替:

list_filter = ('people__type',)

list_filter = ('type',)

people__type如果您尝试从外键关系过滤到字段People上的模型,将使用。type因此__.


推荐阅读