我是django表格和Crispy Forms的新手。我正在开发一个小论坛中有一些简单的表格。我想我不需要使用%crispy%标签。我只需要香脆的过滤器。但是,我不知道他们为什么不呈现错误消息。 此外,如果我想自定义错误消息(它们必须是西班牙语),我是否需要使用%crispy%标记,或者是否可以使用| crispy过滤器执行此操作? 无论如何,这是我的一种形式:
from django import forms
from django.forms import Textarea
class FormNuevoVideo(forms.Form):
url = forms.URLField(initial='http://', max_length=250)
titulo = forms.CharField(max_length=150)
descripcion = forms.CharField(
help_text="...",
widget=Textarea(attrs={'rows': 3, 'data-maxlength': 500}))
以下是观点:
@login_required
def nuevo_video(request, slug):
template = 'videos/nuevo.html'
tema = Temas.objects.get(slug=slug)
if request.method == 'POST':
form = FormNuevoVideo(request.POST)
if form.is_valid():
...
nuevo_video.save()
return redirect('videos:videos_tema', slug=tema.slug, queryset='recientes')
else:
return redirect('videos:nuevo_video', slug=tema.slug) #this same view.
else:
form_nuevo_video = FormNuevoVideo()
context = {'form_nuevo_video': form_nuevo_video, 'tema': tema}
return render(request, template, context)
在HTML中:
{% block form %}
<form action = "{% url 'videos:nuevo_video' tema.slug %}" method = "post">
{% csrf_token %}
{{form_nuevo_video|crispy}}
<input class = "btn pull-right" type = "submit" value ="enviar"/>
</form>
{% endblock form %}
因此,我们可以说,当有人试图提交标题超过150个字符的视频时,它不会显示错误。我确信我错过了一些简单的事情。此外,我想自定义错误消息,以便它们是西班牙语。提前谢谢。