我的models.py
有以下课程:
class TodoList(models.Model):
id = models.AutoField(primary_key=True)
def __unicode__(self):
return self.id
admin.py
包含以下几行:
from django.contrib import admin
from todolist.models import TodoList
class TodoListAdmin(admin.ModelAdmin):
readonly_fields = ('id',)
admin.site.register(TodoList, TodoListAdmin)
但是,在Django 1.5.1 admin中,id
未显示为只读。相反,我只是显示(None)
。如何自动显示我创建的对象的id
为只读?
答案 0 :(得分:4)
通常在保存之前它没有ID。
请遵循以下代码,它一定会帮助您克服无(显示数据)。
models.py
class A(models.Model):
a = models.AutoField(primary_key=True)
def __str__(self):
return str(self.a)
admin.py
class AAdmin(admin.ModelAdmin):
list_display = ['a']
readonly_fields = ['a_display']
def a_display(self, obj):
if obj.a is None:
a = A.objects.all().order_by('-a')[:1]
if a:
return a[0].a + 1
else:
return 0
else:
return obj.a
admin.site.register(A, AAdmin)
请检查以上代码。如有任何问题请发表评论。
答案 1 :(得分:3)
在保存之前它没有ID。如果您要添加新的,则显示“无”是正确的。