Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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 ModelForm错误消息未显示在模板中_Python_Django - Fatal编程技术网

Python Django ModelForm错误消息未显示在模板中

Python Django ModelForm错误消息未显示在模板中,python,django,Python,Django,我已经根据文档创建了一些自定义错误消息(尽我所能),但我没有收到任何错误,更不用说自定义错误了。这是我的密码: forms.py class UploadFileForm(forms.ModelForm): class Meta: model = Job fields = ['jobID','original_file'] labels = { 'jobID': _('Job ID'), 'o

我已经根据文档创建了一些自定义错误消息(尽我所能),但我没有收到任何错误,更不用说自定义错误了。这是我的密码:

forms.py

class UploadFileForm(forms.ModelForm):
    class Meta:
        model = Job
        fields = ['jobID','original_file']
        labels = {
            'jobID': _('Job ID'),
            'original_file': _('File'),
        }
        error_messages = {
            'jobID': {
                'max_length': _("Job ID is limited to 50 characters."),
                'required': _("Please provide a Job ID."),
                'invalid': _("Job ID must be a combination of letters, numbers, - and _.")
            },
            'original_file': {
                'required': _("Please provide a file."),
                'validators': _("Please ensure you are selecting a zipped (.zip) GDB."),
            },
        }
        help_texts = {
            'original_file': _('Please provide a zipped (.zip) GDB.'),
        }
def upload(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES, user = request.user)
        if form.is_valid():
            form.save()
            request.session['jobID'] = request.POST['jobID']
            #job = Job.objects.filter(user_id = request.user.id).filter(jobID = request.POST['jobID']).latest()
            # initialize(job)
            return render(request,'precheck/run_precheck.html')
    form = UploadFileForm()
    historyList = Job.objects.filter(user_id = request.user.id)[:10]
    return render(request, 'precheck/upload.html',{'form': form, 'history': historyList})
upload.html

    <form method = "POST" action="{% url 'precheck:upload' %}" enctype="multipart/form-data" name="uploadForm">
        {% csrf_token %}

        {% for field in form %}
        <div>
            <strong>{{ field.errors }}</strong>
            {{ field.label_tag }} {{ field }}
            {% if field.help_text %}
                <p class ="help-text">{{ field.help_text }}</p>
            {% endif %}
        </div>
        {% endfor %}

        <br />
        <button type="button" id="uploadButton" data-loading-text="Loading..." class="btn btn-primary" autocomplete="off" style="margin: auto 20%; ">Upload</button>

    </form>

我已经包含了我认为相关的所有内容,如果您还需要其他信息,请告诉我。

问题是,如果表单无效,您将表单重置为初始表单:

form = UploadFileForm()
historyList = Job.objects.filter(user_id = request.user.id)[:10]
return render(request, 'precheck/upload.html',{'form': form, 'history': historyList})
您的流应该呈现绑定表单(及其错误),因此它应该是:

if request.method == 'POST':
    form = UploadFileForm(request.POST, request.FILES, user = request.user)
    if form.is_valid():
         # do stuff for valid form
         return redirect
elif request.method == 'GET':
     form = UploadFileForm()
# flow common for GET and invalid form
return render(request, template, {'form': form})

问题是,如果表单无效,则将表单重置为初始表单:

form = UploadFileForm()
historyList = Job.objects.filter(user_id = request.user.id)[:10]
return render(request, 'precheck/upload.html',{'form': form, 'history': historyList})
您的流应该呈现绑定表单(及其错误),因此它应该是:

if request.method == 'POST':
    form = UploadFileForm(request.POST, request.FILES, user = request.user)
    if form.is_valid():
         # do stuff for valid form
         return redirect
elif request.method == 'GET':
     form = UploadFileForm()
# flow common for GET and invalid form
return render(request, template, {'form': form})

如何验证字段并生成这些错误?如果我以'required'为例,您的
Job
模型的
jobID
original_文件
是必填字段吗?你是说如果你不在表单中填写
jobID
,你就看不到发布后的错误?视图是否确实在验证表单并在表单无效时进行渲染?(显示您的view.py代码)@dirkgroten我在上面添加了
views.py
jobID
original\u file
是模型中的必填字段,使用
validate\u slug
MaxLengthValidator
验证
?如果我以'required'为例,您的
Job
模型的
jobID
original_文件
是必填字段吗?你是说如果你不在表单中填写
jobID
,你就看不到发布后的错误?视图是否确实在验证表单并在表单无效时进行渲染?(显示您的view.py代码)@dirkgroten我在上面添加了
views.py
jobID
original\u file
是模型中的必填字段,
jobID
使用
validate\u slug
MaxLengthValidator