J'ai lu sur la fonctionnalité Can_add_Related ici: https://code.djangoproject.com/ticket/ 9071
J'ai essayé de l'utiliser de cette façon: p> mais cela jette un typeError et je ne sais pas comment résoudre ce problème. P> Quelqu'un peut-il me dire dans la bonne direction? P> Merci. P> P>
4 Réponses :
can_add_related code> semble être un attribut sur le widget , pas le champ, alors essayez:
self.fields['person'].widget.can_add_related = False
Cela vient probablement tard. Mais pour d'autres téléspectateurs, référence,
Pour tous ceux qui essaient que cela fonctionne simplement, même avec Django 1.7 - mais b> pas avec des inlines. Pour eux, j'ai fini par écraser les widgets, comme expliqué par @sether, voyez ici: lien
Voir cette réponse à la question liée au commentaire de @ Normic pour une solution beaucoup de conciliation pour les inlines (en utilisant get_formset au lieu de get_form) Stackoverflow.com/a / 37558444/1302095
Approche alternative, avec modification des options de widget * avant * le formulaire est instancié:
class MyAdmin(django.contrib.admin.ModelAdmin): def formfield_for_dbfield(self, *args, **kwargs): formfield = super().formfield_for_dbfield(*args, **kwargs) if hasattr(formfield, "widget"): formfield.widget.can_add_related = False formfield.widget.can_delete_related = False formfield.widget.can_change_related = False else: pass # this relation doesn't have an admin page to add/delete/change return formfield
Une autre approche, si vous définissez un modèle inline et utilisez-le dans votre administrateur, seriez-vous à
Oui, vous pouvez le voir ici: dpaste.com/740431