将验证错误消息添加到Django中的呈现模板(通过视图.py)

2024-04-29 03:04:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了一个验证程序,在用户可以转到另一个视图之前,检查以确保上载了一定数量的图像。我知道验证是有效的,因为如果他们没有足够的图片,我已经成功地将他们重定向回上传页面,如果他们没有足够的图片,我会成功地重定向到预览页面。在

代码

@login_required
def preview_website(request, slug):
    student = Student.objects.get(slug=slug)

    if student.studentimage_set.filter(image_type="portrait").exists() and
student.studentimage_set.filter(image_type="interest1").exists() and 
student.studentimage_set.filter(image_type="interest2").exists() and 
student.studentimage_set.filter(image_type="interest3").exists():
        return render(request, 'students/preview_website.html', {
            'student': student,
        })
    else:
        return redirect('upload_student_image', slug=student.slug)

我现在面临的问题是错误的通知。我想让他们知道,他们需要添加更多的图像,以便向前迈进。有没有办法,通过视图.py,是否在模板顶部打印通知?(我知道在表单或模型中使用验证更为标准,但这是一种特殊情况。)

我尝试了以下操作,但我得到了一个错误页面,无法返回到图像上载页面:

^{pr2}$

我也尝试了以下方法,但没有看到模板页面上有任何内容:

    else:
        msg = "Please make sure you have uploaded 4 images!"

我已经通读了:17105947,但是这个解决方案对我不起作用。在

有什么想法吗?我对编程和Django相当陌生,所以我希望这只是我的一个小疏忽,相对容易修复!在


Tags: and图像image视图typeexists图片页面
2条回答

您可以将错误消息添加到if作用域后面的模板中。在

在您看来:

@login_required
def preview_website(request, slug):
    student = Student.objects.get(slug=slug)

    if student.studentimage_set.filter(image_type="portrait").exists() and
student.studentimage_set.filter(image_type="interest1").exists() and 
student.studentimage_set.filter(image_type="interest2").exists() and 
student.studentimage_set.filter(image_type="interest3").exists():
        return render(request, 'students/preview_website.html', {
            'student': student})
    else:
        error_message = "Please make sure you have uploaded 4 images!" 
        return render(request, 'students/preview_website.html', {
            'student': student, 'error_message': error_message})


将此添加到模板的顶部

^{pr2}$

你可以这样做

length(request.FILES)

在视图中,如果长度小于所需长度,则可以返回上载html

^{pr2}$

在html页面中使用以下样式可以显示错误

{% if error %}
    {{ error }}
{% endif%}

相关问题 更多 >