2013-07-12 11 views
15

Mam Team modelu odrobina players ManyToManyField i chcę, aby móc dodać Player s do nowego zespołu, gdy tworzone, ale nie mógł go modyfikować po utworzeniu.Django pole tylko do odczytu tylko na zmiany, ale nie podczas tworzenia

Jeśli zrobię pole players readonly tak:

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

admin.site.register(Team, TeamAdmin) 

nie będę w stanie dodać graczy do nowego Team. Jak mogę utworzyć pole "tylko po utworzeniu" lub coś w tym stylu?

Odpowiedz

32

Musisz zastąpić metodę get_readonly_fields() swojej klasy admin.

# 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

Doskonale, dzięki! – kissgyorgy

Powiązane problemy