2010-10-12 3 views

Répondre

4

Vous pouvez remplacer votre get_readonly_fields de ModelAdmin pour définir certains champs en lecture seule:

class MyAdmin(admin.ModelAdmin): 

    def get_readonly_fields(self, request, obj=None): 
     if obj: # when editing an object 
      return ['field1'] 
     return self.readonly_fields 
+0

Salut pourrait vous s'il vous plaît expliquer votre exemple un peu plus? Je suis très nouveau à Django. Comment votre code vérifie-t-il si le document (instance de modèle) en cours d'ouverture est ouvert pour la première fois (création) ou successivement (édition)? J'ai besoin que certains champs (pas tous) soient modifiables quand l'instance est créée et bloqués les fois suivantes l'instance est ouverte pour l'édition. Merci! –

+0

Si un nouveau document est créé, aucun obj n'est passé à la méthode ... –

+0

C'est vraiment génial, mais ça ne semble pas fonctionner pour les inlines. Pour une raison quelconque, lorsque j'utilise cette fonction dans une ligne, elle rend le champ en lecture seule, même lors de la création d'objets. – Hassan

Questions connexes