Django后台管理字段为空 无法使用已创建模型求助
Django后台管理字段为空,无法使用已创建模型的问题
首次遇到Django后台管理字段为空的问题,无法使用已创建的模型。尝试新建项目后问题仍未解决,不知如何处理。
相关代码
Models.py
from django.db import models # Create your models here. class PersonModel(models.Model): Gender = { ('Male','Male'), ('Female','Female'), } Adult = { ('Non-Adult','Non-Adult'), ('Adult','Adult'), } Date = models.DateTimeField(auto_now_add=True), Name = models.CharField(max_length=50, blank=True, null=True), Surname = models.CharField(max_length=50, blank=True, null=True), The_gender = models.CharField(max_length=10, blank=True, null=True), The_Adult = models.CharField(max_length=10, blank=True, null=True), def __str__(self): return self.Name
admin.py
from django.contrib import admin from . models import PersonModel # Register your models here. admin.site.register(PersonModel)
views.py
from django.shortcuts import render from . models import PersonModel # Create your views here. def Home(request): Persons = PersonModel.objects.all() return render(request, 'Practice_2_app/Home.html', {'Persons':Persons}) def The_form(request): return render(request, 'Practice_2_app/The_form.html', {})
后台字段显示情况

问题原因及解决办法
核心问题是models.py中每个字段定义末尾多了逗号,导致这些字段被解析为元组而非Django模型字段,后台自然无法识别。
修复后的Models.py代码
from django.db import models class PersonModel(models.Model): # 建议用元组定义choices(Django常规用法,顺序更稳定) Gender = ( ('Male','Male'), ('Female','Female'), ) Adult = ( ('Non-Adult','Non-Adult'), ('Adult','Adult'), ) # 去掉每个字段末尾的逗号 Date = models.DateTimeField(auto_now_add=True) Name = models.CharField(max_length=50, blank=True, null=True) Surname = models.CharField(max_length=50, blank=True, null=True) # 关联choices选项,提升后台体验 The_gender = models.CharField(max_length=10, blank=True, null=True, choices=Gender) The_Adult = models.CharField(max_length=10, blank=True, null=True, choices=Adult) def __str__(self): # 避免Name为空时抛出异常 return self.Name or "未命名"
后续操作
修复代码后,执行数据库迁移命令:
python manage.py makemigrations python manage.py migrate
重启Django服务,后台即可正常显示模型字段。
内容的提问来源于stack exchange,提问作者Sizwe
相关产品推荐
相关产品推荐

