2010-11-01 8 views
0

Je voudrais créer/mettre à jour un "sous-objet" dans une boîte de dialogue d'édition d'administration.Créer/mettre à jour un sous-objet dans la boîte de dialogue d'édition de Django

J'ai un modèle "CmsObject", qui contient plusieurs objets "CmsPageItem" (actuellement il y aura un seul CmsPageItem fixe, mais cela changera dans le futur). Plutôt que de laisser un widget StackedInline contrôler la mise en page, je voudrais afficher un champs textarea supplémentaires quelque part dans la page change_form.html.

Quelle serait l'approche recommandée pour étendre la boîte de dialogue ModelAdmin? Je pense que je dois pousser quelque part un champ de formulaire ou introduire de nouvelles valeurs dans le contexte du modèle.

+0

Pourriez-vous préciser ce que vous entendez par sous-objet? – zsquare

+0

@zsquare: ok, j'ai mis à jour la question. – vdboor

Répondre

0

J'ai finalement réglé pour implémenter la vue entière moi-même. Pour la plupart des objets simples, l'implémentation des inlines (soit avec un template personnalisé, soit sans) est suffisante. Dans cette situation, j'ai besoin de plus de contrôle, donc j'ai complètement écrasé add_view et change_view complètement. FeinCMS fait également cela pour sa fenêtre d'édition.

0

Avez-vous regardé TabularInlines? Il y a un exemple ici: http://docs.djangoproject.com/en/dev/intro/tutorial02/

+0

Je l'ai vu, mais ce n'est pas quelque chose que je cherche. Je voudrais avoir plus de contrôle sur le positionnement puis un TabularInline me le donne. – vdboor

+1

Ensuite, vous devrez modifier le modèle et/ou les formsets. Django-cms a une disposition de modèle similaire. Vous pouvez vérifier comment ils implémentent cela. – zsquare