2009-03-04 8 views
10

Je souhaite hériter d'une classe de modèle à partir d'un code tiers. Je n'utiliserai pas certains champs, mais je souhaite que mon client puisse modifier le modèle dans Admin. Est-ce que le meilleur pari est de les cacher de l'Admin ou est-ce que je peux réellement les empêcher d'être créés en premier lieu?Inheritance de modèle Django. Masquage ou suppression de champs

En outre, que puis-je faire si l'un des champs indésirables est requis? Ma première pensée est de remplacer la méthode de sauvegarde et juste de mettre une valeur par défaut.

Répondre

4

Si vous héritez du modèle, il n'est probablement pas judicieux d'essayer de masquer ou de désactiver les champs existants. La meilleure chose que vous pourriez probablement faire est exactement ce que vous avez suggéré: remplacer save() et gérer votre logique là-bas.

5

Vous pouvez contrôler les champs qui sont modifiables dans l'admin.

De la documentation Django:

« Si vous voulez un formulaire pour le modèle de l'auteur qui ne comprend que le nom et les champs titre, vous devez spécifier les champs ou excluez comme ceci:

class AuthorAdmin(admin.ModelAdmin): 
    fields = ('name', 'title') 

class AuthorAdmin(admin.ModelAdmin): 
    exclude = ('birth_date',)" 

http://docs.djangoproject.com/en/dev/ref/contrib/admin/

Questions connexes