Django模型Admin面板未显示外键下拉选择框问题求助
问题原因与解决方案
核心问题:外键字段定义后的多余逗号
你在user和product外键字段的末尾加了逗号,这会让Python将这两个字段解析成元组而非有效的Django模型字段,导致Admin面板无法识别并展示它们。
次要问题:DateTimeField未实例化
createdAt = models.DateTimeField缺少实例化括号,需补充括号才能正常工作,建议添加auto_now_add=True参数自动设置评论创建时间。
修正后的完整模型代码
from django.db import models from django.contrib.auth.models import User class Reviews(models.Model): user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True) name = models.CharField(max_length=350, null=True, blank=True) rating = models.DecimalField(max_digits=7, decimal_places=2, null=True, blank=True, default=0) comment = models.TextField(null=True, blank=True) createdAt = models.DateTimeField(auto_now_add=True) _id = models.AutoField(primary_key=True, editable=False) def __str__(self): return str(self.rating)
补充:确保Admin模型注册正确
在应用的admin.py中注册Reviews模型,否则Admin面板不会显示该模型的管理入口:
from django.contrib import admin from .models import Reviews admin.site.register(Reviews)
完成上述修改后,重启服务器进入Admin面板,user和product字段就会以下拉选择框的形式正常展示。
内容的提问来源于stack exchange,提问作者Carter James
相关产品推荐
相关产品推荐

