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''}),
}