You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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',
    {})

后台字段显示情况

Django后台字段显示为空


问题原因及解决办法

核心问题是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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:10:35