Django只读字段只有在更改时,而不是创建时 [英] Django readonly field only on change, but not when creating
本文介绍了Django只读字段只有在更改时,而不是创建时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个团队
model whit 玩家
ManyToManyField,我想要添加 Player
s创建时,新的团队,但创建后无法修改。
I have a Team
model whit players
ManyToManyField, and I want to be able to add Player
s to a new team when created, but not able to modify it after created.
如果我使 players
field readonly like this:
If I make the players
field readonly like this:
# admin.py
class TeamAdmin(admin.ModelAdmin)
readonly_fields = ['players']
admin.site.register(Team, TeamAdmin)
我将无法将玩家添加到新的团队
中。
如何使玩家
字段创建后只读或类似的东西?
I will not be able to add players to a new Team
.
How can I make the players
field "readonly after created" or something like that?
推荐答案
您需要覆盖 get_readonly_fields()
您的管理员类的方法。
You need to override get_readonly_fields()
method of your admin class.
# admin.py
class TeamAdmin(admin.ModelAdmin)
...
def get_readonly_fields(self, request, obj=None):
if obj: #This is the case when obj is already created i.e. it's an edit
return ['players']
else:
return []
这篇关于Django只读字段只有在更改时,而不是创建时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文