Question

Je souhaite hériter d'une classe de modèle 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 le meilleur moyen de les cacher à l'administrateur ou puis-je réellement empêcher leur création?

De plus, que puis-je faire si l’un des champs non désirés est requis? Ma première pensée est de remplacer la méthode de sauvegarde et de mettre une valeur par défaut.

Était-ce utile?

La solution

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 puissiez faire est probablement exactement ce que vous avez suggéré: remplacez save () et gérez votre logique.

Autres conseils

Vous pouvez contrôler les champs modifiables dans admin.

Dans les documents Django:

" Si vous souhaitez un formulaire pour le modèle Auteur qui n'inclut que les champs de nom et de titre, vous devez spécifier ou exclure des champs de la manière suivante:

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

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

http://docs.djangoproject.com/en/dev/ réf / contrib / admin /

Plutôt que d'hériter, envisagez d'utiliser des formulaires personnalisés.

  1. Vous pouvez supprimer les champs de l'affichage qui se trouvent toujours dans le modèle.

  2. Vous pouvez valider et fournir des valeurs par défaut dans la méthode clean () du formulaire.

Voir http : //docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top