模型字段的形式在django admin中消失

时间:2018-06-18 07:35:18

标签: python django

我有两个模型,分别是User和Record。每个都有几个字段。

from django.db import models

class User(models.Model):
        openid = models.CharField(max_length=20)
        nickname = models.CharField(max_length=20,null=True)
        def __str__(self):
                return self.nickname

class Record(models.Model):
        expression = models.CharField(max_length=100)
        user = models.ForeignKey(User)
        time = models.DateTimeField(auto_now_add=True)
        def __str__(self):
                return self.expression

我在admin.py

注册
from django.contrib import admin
from .models import User,Record

class RecordAdmin(admin.ModelAdmin):
        list_display = ('expression','user','time')

class UserAdmin(admin.ModelAdmin):
        empty_value_display = "空"
        list_display = ('openid','nickname')

admin.site.register(User,UserAdmin)
admin.site.register(Record,RecordAdmin)

最初在django admin中运行良好。但是有一天,Record模型的领域变得黯然失色。它看起来像

不显示任何字段。它使我无法修改或添加记录模型的值。其他模型用户运行良好,所有数据都存在于数据库中。所以为什么?

1 个答案:

答案 0 :(得分:0)

我认为您只需在ForeignKey Field中添加class Record(models.Model): expression = models.CharField(max_length=100) user = models.ForeignKey(User, on_delete=models.CASCADE) time = models.DateTimeField(auto_now_add=True) def __str__(self): return self.expression 即可。当您使用此类字段时,您必须在此字段上进行更新,删除或其他任何操作时指定合并。

所以你的脚本应该是这样的:

null=True

结果如下:

enter image description here

enter image description here

enter image description here

编辑:

您还可以default=null

修改class User(models.Model): openid = models.CharField(max_length=20) nickname = models.CharField(max_length=20,default=null) def __str__(self): return self.nickname
People