Django的。脆皮形式。显示带有过滤器的错误消息并自定义它们

时间:2014-06-11 19:54:22

标签: django forms django-crispy-forms

我是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个字符的视频时,它不会显示错误。我确信我错过了一些简单的事情。此外,我想自定义错误消息,以便它们是西班牙语。提前谢谢。

0 个答案:

没有答案