Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 向Django中呈现的模板添加验证错误消息(通过views.py)_Python_Django_Validation - Fatal编程技术网

Python 向Django中呈现的模板添加验证错误消息(通过views.py)

Python 向Django中呈现的模板添加验证错误消息(通过views.py),python,django,validation,Python,Django,Validation,我已经编写了一个验证,检查以确保在用户可以转到另一个视图之前上载了一定数量的图像。我知道验证是有效的,因为如果他们没有足够的图片,我已经成功地将他们重定向回上传页面,如果他们有足够的图片,我会将他们重定向回预览页面 代码 我现在遇到的问题是错误通知。我想让他们知道,他们需要添加更多的图像,以便向前迈进。有没有办法通过views.py在模板顶部打印通知?(我知道在表单或模型中使用验证更为标准,但这是一个特例。) 我尝试了以下操作,但得到一个错误页面,无法返回图像上载页面: else:

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

代码

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

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

    else:
        raise ValidationError("Please make sure you have uploaded 4 images!")
我还尝试了以下操作,但在模板页面上没有看到任何打印内容:

    else:
        msg = "Please make sure you have uploaded 4 images!"
我已经通读了:,但解决方案对我不起作用


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

您可以在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})

将此添加到模板的顶部

{% if error_message %}
  <p>{{ error_message }}</p>
{% endif %}
{%if错误\消息%}
{{error_message}}

{%endif%}
您可以通过

length(request.FILES)
在视图中,如果长度小于所需长度,则可以返回上载html

return render_to_response('upload.html',{'error':error},context_instance=RequestContext(request))
在html页面中,使用以下样式可以显示错误

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

出于某种原因,我对它的记忆有所不同,但我只是验证了仅使用
if
可以按预期工作。谢谢!我没有足够的声誉来提升这一点,但这正是我想要做的。是否有任何文档可以让我在下次阅读时更好地理解?
{% if error %}
    {{ error }}
{% endif%}