Django CreateView取消空字段

时间:2017-03-24 03:40:03

标签: python django crud django-generic-views

我的CountryCreateView模型有一个Country,我正在尝试添加取消按钮。但是,如果在每个字段中都没有填写任何内容,我按下取消按钮,我会弹出一个显示Please fill out this field的弹出窗口。当我按下取消按钮时,我不在乎字段中的内容,我只想转到我重定向到的页面。除此之外,我希望这个字段不要求只为此。我不想要任何其他东西允许空白字段。

views.py:

class CountryCreateView(generic.edit.CreateView):
    model = Country
    fields = ['code', 'name']
    template_name_suffix = '_create'

    def post(self, request, *args, **kwargs):
        if "cancel" in request.POST:
            return HttpResponseRedirect(reverse('appName:country_list'))
        else:
            return super(CountryCreateView, self).post(request, *args, **kwargs)

models.py:

class Country(AutoUpdateModel): # extends models.Model

    code = models.CharField(primary_key=True, max_length=2, validators=[validate_nonempty, validate_string_length_two, validate_string_all_caps]) 
    name = models.CharField(max_length=50, db_column="Name", validators=[validate_nonempty])
    # etc...

country_create.html:

{% extends "appName/base.html" %}


{% block content %}


    <h2 class="title">Create a new Country:</h2>

    <form action="" method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <input type="submit" value="Save" class="btn btn-primary"/>
        <input type="submit" name="cancel" value="Cancel" class="btn btn-secondary"/>
    </form>

{% endblock %}

1 个答案:

答案 0 :(得分:2)

请检查一下是否有效 - 在html中添加 formnovalidate 以提交按钮

<input type="submit" formnovalidate name="cancel" value="Cancel" class="btn btn-secondary"/>