template formularios form for django modelform

formularios - post django



¿Cómo puedo cambiar la etiqueta de modelado y darle un nombre personalizado? (4)

De la documentation :

Puede especificar los atributos de etiquetas , help_texts y error_messages de la clase Meta interna si desea personalizar aún más un campo.

Hay ejemplos justo debajo de esa sección de los documentos. Entonces, puedes hacer:

class Meta: model = Post labels = { "video": "Embed" }

Quiero crear un nombre personalizado para una de las etiquetas en mi modelo, este es mi formulario.py

class PostForm(forms.ModelForm): body = forms.CharField(widget=PagedownWidget) publish = forms.DateField( widget=forms.SelectDateWidget, initial=datetime.date.today, ) class Meta: model = Post fields = [ "title", "body", "author", "image", "image_url", "video_path", "video", "publish", "tags", "status" ]

Quiero cambiar el video en lugar del que quiero que diga incrustar. Revisé la documentación pero no encontré nada que me ayudara a hacer eso. ¿Es posible sin tener que reorganizar mi modelo? ¿si es así, cómo? Gracias


Si tu puedes Simplemente use el argumento de la label :

class PostForm(forms.ModelForm): ... video = forms.FileField(label=''embed'')

o defínalo dentro de su clase Meta :

class PostForm(forms.ModelForm): ... class Meta: ... labels = { "video": "embed" ... }


Una forma fácil de lograr esto sin editar el formulario sería cambiar el nombre verbose_name en el modelo. Para el campo de video en su modelo, puede cambiar la etiqueta en el formulario de "video" a "incrustar" de la siguiente manera:

class Post(models.Model) video = models.UrlField(verbose_name="embed") # Other fields


class Meta: model = Book fields = (''title'', ''publication_date'', ''author'', ''price'', ''pages'',''book_type'',) labels = { ''title'':''Titulo'', ''publication_date'':''Data de Publicação'', ''author'':''Autor'', ''price'':''Preço'', ''pages'':''Número de Páginas'', ''book_type'':''Formato'' } widgets = { ''title'': forms.TextInput(attrs={''class'':''form-control''}), ''publication_date'': forms.TextInput(attrs={''class'':''form-control''}), ''author'': forms.TextInput(attrs={''class'':''form-control''}), ''price'': forms.TextInput(attrs={''class'':''form-control''}), ''pages'': forms.TextInput(attrs={''class'':''form-control''}), ''book_type'': forms.TextInput(attrs={''class'':''form-control''}), }