2016-11-07 1 views
2

Je travaille sur un projet qui comporte un chapitre, chaque chapitre ayant un titre, un contenu et un ordre. Je souhaite que le champ 'order' soit nommé tel quel, mais que le champ soit affiché dans un CreateView comme quelque chose d'autre, comme le 'numéro de chapitre'. Les meilleures informations que j'ai trouvées recommandent de mettre à jour l'attribut "labels" dans la classe Meta, mais cela ne fonctionne pas pour moi.Étiquettes de champs Django CreateView

C'est ce que je me sers maintenant, ce qui ne fonctionne pas:

class ChapterCreate(CreateView): 
    model = models.Chapter 
    fields = [ 
     'title', 
     'content', 
     'order', 
    ] 

    class Meta: 
     labels = { 
      'order': _('Chapter number'), 
     } 

J'ai aussi essayé d'utiliser l'attribut « étiquette en dehors de Meta, mais cela ne fonctionne pas non plus. Devrais-je utiliser un ModelForm à la place, ou y a-t-il un moyen correct de le faire?

Répondre

2

La solution la plus simple dans ce cas serait de régler le verbose_name pour votre champ modèle

class Chapter(models.Model): 
    order = models.IntegerField(verbose_name= _('Chapter number')) 

Note J'utiliser IntegerField dans cet exemple, s'il vous plaît utiliser quel que soit le type est nécessaire.

+0

Génial, ça l'a fait et c'est agréable et facile. Merci beaucoup! – brunosardinepi

+0

heureux d'avoir aidé – e4c5