我创建了一个模型Post
class Post(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=100)
image = models.ImageField(upload_to='blog_image', default='default.jpg')
smallContent = models.TextField()
content = models.TextField()
data_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
答案 0 :(得分:0)
由于这是一个只读字段,我认为您可能需要明确告诉admin才能显示它。
我不知道这是否行得通,但请尝试admin.py
from django.contrib import admin
from .models import Post
class PostAdmin(admin.ModelAdmin):
readonly_fields = ['display_id']
def display_id(self, obj):
return obj.id
admin.site.register(Post, PostAdmin)
答案 1 :(得分:0)
保存模型后将生成AutoField。管理控制台中未提供该密码,因为该密码不可编辑。
如果要使id可编辑(不推荐),请使用primary_key = True将其覆盖为CharField而不是AutoField。
否则,如果只想在面板中显示它(在编辑保存的模型时),请将其添加到模型管理员的只读列表中。
在这里了解AutoField。