Django 验证返回两个错误而不是一个

如问题所述,我在模板中收到两个错误。这是代码


def create(request):


full_content = forms.InputForm()

if request.method == "POST":

    full_content = forms.InputForm(request.POST)

    

    if full_content.is_valid(): 

        title = full_content.cleaned_data["title"]

        content = full_content.cleaned_data["content"] 


        if full_content.clean_title():#Works                

            full_content.create(title, content)

            context= {

                'title' : util.get_page_name(title),

                'entry' : util.get_entry(title),

            }                

            return render(request, "encyclopedia/entry.html",context)           

    

    #From here on its not valid:

    context = {

        'form':full_content

    }

    return render(request, "encyclopedia/create.html", context)      

return render(request, "encyclopedia/create.html", {

    'form':full_content

})

以及 forms.clean_title():


def clean_title(self):

    title_name = self.cleaned_data.get("title")

    filename = f'entries/{title_name}.md'

        

    if default_storage.exists(filename):

        raise ValidationError("This title is already taken")


    return title_name

当然还有 create.html:


<h3>Create new entry</h3>

<form action="{% url 'create'%}" method="POST">

    

    {{ form.title.errors }}

    

    {% csrf_token %}

    <table>

        {{form.as_p}}

    </table>

    

    <button type="submit" value="save">Save</button>

</form>

为什么我得到两颗子弹有什么想法吗?:

  • 此标题已被占用

  • 此标题已被占用


翻过高山走不出你
浏览 102回答 1
1回答

繁星点点滴滴

没必要{{ form.title.errors }}。{{form.as_p}}也是显示错误。所以删除它。<h3>Create new entry</h3><form action="{% url 'create'%}" method="POST">&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; {% csrf_token %}&nbsp; &nbsp; <table>&nbsp; &nbsp; &nbsp; &nbsp; {{form.as_p}}&nbsp; &nbsp; </table>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; <button type="submit" value="save">Save</button></form>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python