【问题标题】:django model form is not displaying any errorsdjango 模型表单不显示任何错误
【发布时间】:2015-03-15 08:18:12
【问题描述】:

我在模板中没有收到任何错误。它只是给我没有错误的表格。虽然上传功能工作正常,但如果我不提供任何输入,它不会给我任何错误。如果我的模板中有错误,我将如何得到错误?

html:

{% block content %}
    <form action="/{{ user.username }}/upload_photos/" method="post" enctype="multipart/form-data">
    {% csrf_token %}
        {{ form.as_p }}
        <input type="submit" value="Upload"/>
    </form>
{% endblock %}

views.py:

def upload_photos(request, user_name):
    user = User.objects.get(username=unquote(user_name))
    if request.method=='POST':
        form = PhotoForm(request.POST, request.FILES)
        if form.is_valid():
            forum = form.save(commit=False)
            forum.user = user
            forum.save()
            return HttpResponseRedirect('/'+user.username+'/photos')
        else:
            form = PhotoForm()
            return render(request, 'upload_photos.html',{'form':form})

    else:
        form = PhotoForm()
        return render(request, 'upload_photos.html',{'form':form})

【问题讨论】:

  • 当表单无效时删除form = PhotoForm()。您正在将提交的表单替换为空白表单。
  • 好的...现在我明白了。谢谢你。在职的。也发布你的答案!再次感谢。

标签: django django-forms django-templates django-views


【解决方案1】:

我已注释掉清空您的表单的行。

def upload_photos(request, user_name):
    user = User.objects.get(username=unquote(user_name))
    if request.method=='POST':
        form = PhotoForm(request.POST, request.FILES)
        if form.is_valid():
            forum = form.save(commit=False)
            forum.user = user
            forum.save()
            return HttpResponseRedirect('/'+user.username+'/photos')
        else:
            #  form = PhotoForm()  Don't overwrite the submitted form.
            return render(request, 'upload_photos.html',{'form':form})

    else:
        form = PhotoForm()
        return render(request, 'upload_photos.html',{'form':form})

【讨论】:

  • 您可以通过完全删除第一个 else 并将最后的 return 语句移回一个缩进级别来使其更简单。
  • 当两个返回语句具有相同的缩进时,我发现它更具可读性。
猜你喜欢
  • 2020-11-14
  • 2013-05-11
  • 2018-11-30
  • 1970-01-01
  • 2017-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多