Django错误 - 表单缺少字段'n

1 投票
1 回答
1858 浏览
提问于 2025-04-17 17:14

我正在学习Django,并通过建立一个俱乐部会员网站来练习。在我为会员创建的应用的admin.py文件中,出现了以下错误:

'StudentAdmin.fieldsets[3][1]['fields']' 指向了一个名为'n'的字段,但这个字段在表单中缺失。

这是它提到的models.py中的相关部分(_CHOICES元组工作正常):

firstname = models.CharField(max_length=30)
surname = models.CharField(max_length=30)
dob = models.DateField(default='01/01/2000')
phone = models.CharField(max_length=13)
email = models.EmailField()
address = models.TextField()
grade = models.CharField(max_length=7,
                         choices=GRADE_CHOICES,
                         default='10THGUP')
school = models.CharField(max_length=3,
                          choices=SCHOOL_CHOICES,
                          default='RED')
insurancedate = models.DateField(default='01/01/2001')
emergencycontact = models.CharField(max_length=40)
emergencycontactnumber = models.CharField(max_length=13)
notes = models.TextField()

这是导致问题的admin.py文件:

from django.contrib import admin
from members.models import Student

class StudentAdmin(admin.ModelAdmin):

fieldsets = (
    ('Personal Details', {'fields': ('firstname', 'surname','dob','address','phone','email')
    }),
    ('Training', {'fields': ('grade', 'school', 'insurancedate')
    }),
    ('Emergency Contact', {'fields': ('emergencycontact', 'emergencycontactnumber',),
                           'classes': ('collapse')
    }),
    ('Other', {'fields': ('notes')
    }),
)

admin.site.register(Student, StudentAdmin)

我是不是漏掉了什么简单的东西?默认日期在models.py中,因为我使用了python-evolution在第一次syncdb后添加字段,而它不想在没有值的情况下创建这些字段。

1 个回答

2

可能应该把这一行

('Other', {'fields': ('notes')

改成

('Other', {'fields': ('notes',)

这样它就知道这是一个元组,而不是一个字符串了。

撰写回答