NameError: name 'ChoiceInline' 未定义,inline = [ChoiceInline]

0 投票
1 回答
1225 浏览
提问于 2025-04-18 00:42

我在写代码的时候遇到了问题,正在看Django官网上的初学者教程。我对编程还很陌生,之前看了一些关于NameError的帖子,要么是关于安装Python的,要么是比我现在的水平复杂得多。

from django.contrib import admin
from polls.models import Choice, Poll

class ChoiceInline (admin.StackedInline):
    model = Choice
    extra = 3

class PollAdmin(admin.ModelAdmin):
    fieldsets = [
            (None,      {'fields': ['question']}),
            ('Date Information', {'fields': ['pub_date'], 'classes': ['collapse']}),
            ]
    inlines = [ChoiceInLine]

admin.site.register(Poll, PollAdmin)

NameError: name 'ChoiceInLine' is not defined

现在我知道我并没有在任何地方定义过StackedInline,就像定义一个变量一样。我只是以为它是一个现成的模块,可以从某个地方调用Django的功能。我到底哪里出错了呢?请原谅我这个新手的无知。

1 个回答

3

在Python中,变量名是区分大小写的。

把这个:

inlines = [ChoiceInLine]

换成(注意 Ll 是不同的):

inlines = [ChoiceInline]

撰写回答