2009-11-11 5 views
4

J'essaie d'ajouter plusieurs éléments de formulaire en ligne à une page en utilisant Djangos ModelForms. J'ai besoin de boîtes de sélection liées aux modèles de base de données. Les formulaires sont formatés et placés dans un format tabulaire, je dois donc afficher uniquement le ModelForm sans HTML entourant.Personnaliser la sortie HTML de Django ModelForm

class LeagueForm(ModelForm): 
league = forms.ModelChoiceField(queryset=League.objects.all(), empty_label='Manual Team Entry:', required=False) 

class Meta: 
    model = League 
    exclude = ['league_name'] 

Modèle:

{% if selected_sport == 1 %}   
<td>{{ nhl_form.as_p }}</td> 
{% else %} 

Le problème est que je ne veux pas les balises de paragraphe, ni les balises tables ou quoi que ce soit. J'ai besoin d'avoir la forme bien assise là où je la place sans bouleverser le html environnant.

Quelqu'un peut-il me diriger dans la bonne direction? Merci

Répondre

15

Il suffit de se référer à chaque champ séparément.

{{ nhl_form.league }} 

n'affichera le champ , sans cochonneries environs.

+1

Et comment puis-je ajouter des noms supplémentaires de classe CSS personnalisée pour chaque champ (pour le traitement avec CSS/jQuery plus tard)? – Viet

+1

@Mark: Détails ici: http://docs.djangoproject.com/fr/1.1/topics/forms/#looping-over-the-form-s-fields – Viet

+0

@viet, cette documentation a été très utile car je n'ai pas vouloir se référer à chaque domaine séparément. – joshcartme

Questions connexes