Django 1.11 admin select_中给出的字段名无效

Django 1.11 admin select_中给出的字段名无效,django,django-admin,Django,Django Admin,在关于的Django管理文档中,代码示例指定声明list\u select\u related=('authors',)将有助于防止N+1问题 我试图将其用于一组模型,定义如下: class Grouping(models.Model): name = models.CharField(max_length=128, null=False) class InsightCondition(models.Model): criterion = models.CharField(ma

在关于的Django管理文档中,代码示例指定声明
list\u select\u related=('authors',)
将有助于防止N+1问题

我试图将其用于一组模型,定义如下:

class Grouping(models.Model):
    name = models.CharField(max_length=128, null=False)

class InsightCondition(models.Model):
    criterion = models.CharField(max_length=256, db_index=True)
    description = models.CharField(max_length=256, db_index=True)


class Insight(models.Model):
    my_other_thing = models.CharField(max_length=128, null=False)
    grouping = models.ForeignKey('Grouping', related_name="insights",  blank=False, null=False)
    condition = models.ForeignKey('InsightCondition', related_name='insights', null=True, blank=True)
在尝试使用Django管理声明时,我仍然在日志中看到n+1问题。为了解决这个问题,我将
list\u select\u related=('insights',)
添加到以下类中:

@admin.register(Insight)
class InsightAdmin(admin.ModelAdmin):
    list_display = ('condition_link', 'uid', 'grouping_link',
                'detail_description', 'state', )
    list_filter = ('grouping', 'condition')
    list_select_related = ('grouping', 'condition')

    grouping_link = easy.ForeignKeyAdminField('grouping')
    condition_link = easy.ForeignKeyAdminField('condition')

    pass


@admin.register(Grouping)
class GroupingAdmin(admin.ModelAdmin):
    list_display = ('name', 'insight_count')
    search_fields = ['name', 'insights__uid']
    list_select_related = ('insights', ) 

    def insight_count(self, group):
        return group.insights.count()
    pass

@admin.register(InsightCondition)
class InsightConditionAdmin(admin.ModelAdmin):
    list_display = ('criterion', 'description', ) 
    search_fields = ('criterion', 'description', )

    # Failing Lines .... 
    list_select_related = (
         'insights',
    )    
    select_related = ('insights', )
    pass
当加载到管理站点时,我得到了错误信息

FieldError at /admin/insights/insightcondition/
Invalid field name(s) given in select_related: 'insights'. Choices are: (none)
完全错误

我认为这可能是已安装软件包的一个问题,因此我已包括以下内容:

bleach (2.0.0)
coverage (4.4.1)
decorator (4.1.1)
Django (1.11.2)
django-admin-easy (0.3.2)
django-debug-toolbar (1.8)
django-extensions (1.8.1)
django-fsm (2.6.0)
django-reversion (2.0.9)
djangorestframework (3.6.3)
entrypoints (0.2.3)
honeybadger (0.0.6)
html5lib (0.999999999)
ipykernel (4.6.1)
ipython (6.1.0)
ipython-genutils (0.2.0)
ipywidgets (6.0.0)
jedi (0.10.2)
Jinja2 (2.9.6)
jsonschema (2.6.0)
jupyter (1.0.0)
jupyter-client (5.1.0)
jupyter-console (5.1.0)
jupyter-core (4.3.0)
lxml (3.8.0)
MarkupSafe (1.0)
mistune (0.7.4)
nbconvert (5.2.1)
nbformat (4.3.0)
newrelic (2.88.1.73)
notebook (5.0.0)
pandocfilters (1.4.1)
pexpect (4.2.1)
pickleshare (0.7.4)
pip (9.0.1)
prompt-toolkit (1.0.14)
psutil (5.2.2)
ptyprocess (0.5.2)
pyaml (16.12.2)
Pygments (2.2.0)
python-dateutil (2.6.1)
pytz (2017.2)
PyYAML (3.12)
pyzmq (16.0.2)
qtconsole (4.3.0)
setuptools (36.2.0)
simplegeneric (0.8.1)
six (1.10.0)
sqlparse (0.2.3)
tblib (1.3.2)
terminado (0.6)
testpath (0.3.1)
tornado (4.5.1)
traitlets (4.3.2)
wcwidth (0.1.7)
webencodings (0.5.1)
wheel (0.29.0)
widgetsnbextension (2.0.0)

任何帮助都将不胜感激,因为N+1对数据库和加载时间都很重要。我假设我做了一些愚蠢的事情,或者忽略了一些显而易见的事情

为什么InsightConditionAdmin中已经声明了与列表相关的选择,而InsightConditionAdmin中却有与列表相关的选择?我已经删除了
select\u related
,并且没有任何更改。根据我阅读文档的方式,即使声明了一个与选择相关的列表,
select\u related
也是合法的。您还可以根据文档声明
list\u select\u related=True
并指定
select\u related
,以获得更多控制。为什么在InsightConditionAdmin中已经声明了与列表相关的select\u related时还存在与列表相关的select\u?我已经删除了
select\u related
,并且没有任何更改。根据我阅读文档的方式,即使声明了一个与选择相关的列表,
select\u related
也是合法的。您还可以根据文档声明
list\u select\u related=True
并指定
select\u related
,以获得更多控制。