我正在使用 Django 管理站点,记录上有一些只读字段:
class BookAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['title', 'library_id', 'is_missing', \
'transactions_all_time']}),
]
readonly_fields = ['transactions_all_time',]
list_display = ('library_id', 'author', 'title')
这在编辑记录时非常有效 -
transactions_all_time
字段是只读的,就像我想要的那样。但是,当添加新记录时,它的行为有点奇怪。我在页面底部看到一个只读部分,我无法编辑它,此时它无关紧要。
如果在添加新记录时根本不存在此字段会好得多。
是否有任何 Django 选项可以在添加新记录时不显示只读字段?我知道我可以在
add_form.html
上破解 CSS隐藏它,但有更好的方法吗?谢谢。
最佳答案
我有类似的问题。像这样解决了
class MyModelAdmin(admin.ModelAdmin):
readonly_fields = ('field_one',)
def get_readonly_fields(self, request, obj=None):
if obj: # Editing
return self.readonly_fields
return ()
关于Django 管理员 : hide read-only fields on new records?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5091813/