Django Admin向表中添加元素仅提示请修正错误无其他报错如何解决
问题根因
- 你给普通模型绑定了仅适用于用户模型的
BaseUserAdmin管理类:BaseUserAdmin是Django专门为用户身份模型设计的Admin父类,会默认校验用户名、密码等你当前模型不存在的字段,校验失败后就会出现无具体错误提示的「请修正下方错误」提示。 - 非用户模型中配置的
USERNAME_FIELD、REQUIRED_FIELDS属于无效配置,没有任何作用可直接删除。 add_fieldsets中的classes参数配置错误:该参数用于给字段块指定CSS样式类,不能填入字段名。- 存储容量的
capacity字段类型选型不合理:用CharField存储数字类型的容量,还设置了数字类型的默认值,存在类型不匹配的隐患。
修复代码
models.py 修正后
from django.db import models class Meeting(models.Model): time = models.DateTimeField() # 改用数字类型存储容量,符合业务属性 capacity = models.PositiveIntegerField(default=0) class Meta: # 若原有数据库表名为小写meeting可通过该配置兼容,不用修改表结构 db_table = "meeting"
admin.py 修正后
from django.contrib import admin from .models import Meeting # 普通模型直接继承admin.ModelAdmin即可,不要继承BaseUserAdmin class MeetingAdmin(admin.ModelAdmin): list_display = ('time', 'capacity') list_filter = ('time', 'capacity') fieldsets = ( (None, {'fields': ('time', 'capacity')}), ) search_fields = ('time',) ordering = ('time',) # 原有User注册逻辑保留 admin.site.register(User, UserAdmin) admin.site.register(Meeting, MeetingAdmin)
内容的提问来源于stack exchange,提问作者user15118945
相关产品推荐
相关产品推荐

