2013-07-12 30 views
15

我有Team型号惠特players ManyToManyField,我希望能够在创建时将Player添加到新团队,但无法在创建后对其进行修改。Django只读字段只在更改时创建,但不创建时

如果我做players场只读这样的:

# admin.py 
class TeamAdmin(admin.ModelAdmin) 
    readonly_fields = ['players'] 

admin.site.register(Team, TeamAdmin) 

我不能给玩家添加到新Team。 我怎样才能使players字段“创建后只读”或类似的东西?

回答

32

您需要覆盖您的管理员类的get_readonly_fields()方法。

# 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 [] 
+0

完美,谢谢! – kissgyorgy