Django表单动作

时间:2018-07-17 12:00:01

标签: python django

我刚开始使用Django,已经摸不着头脑了,我有一个简单的表单,其操作设置为null,在提交时,它会转到一个我找不到的url,因为我必须在该url上加一个条件命中。

模板:

{% extends 'base.html' %}

{% block body_block %}
    <div class="container">
        <div class="">
            <h2>Education Details</h2>

             <form action="" method="post">
                {{ form.as_p }}
                {% csrf_token %}
                <div class="d-flex justify-content-end">
                {% if '/attorney-profile-wizard/additional-information/' not in request.META.HTTP_REFERER %}
                      <a href="{% url "attorney_edit" url_key %}"
                        class="material-button bg-red pl-2">Cancel</a>
                {% else%}
                       <a href="/attorney-profile-wizard/additional-information/"
                        class="material-button bg-red pl-2">Cancel</a>
                {% endif %}

                    <!--<a href="{% url "attorney_edit" url_key %}"-->
                    <!--class="material-button bg-red pl-2">Cancel</a>-->
                    <input type="submit" class="material-button" name="" value="Save Education">
                </div>
            </form>
        </div>
    </div>
{% endblock %}

型号:

class Education(models.Model):
    degree = models.CharField(max_length=256)
    school_name = models.CharField(max_length=256)
    accolades = models.TextField(null=True)
    start_year = models.IntegerField(blank=True, null=True)
    end_year = models.IntegerField(blank=True, null=True)
    is_law_school = models.BooleanField(default=False)
    position = models.PositiveSmallIntegerField(blank=True, null=True)

    attorney = models.ForeignKey(AttorneyProfile, related_name='educations')

    created_at = models.DateTimeField(auto_now_add=True)
    modified_at = models.DateTimeField(auto_now=True)

    class Meta:
        ordering = ['-id']

    def __str__(self):
        return '{} - {}'.format(self.attorney, self.degree)

views.py

class AttorneyEducationEditMixin(AttorneyEducationMixin, AttorneyEditMixin):
    form_class = EducationForm
    template_name = 'attorney/education/form.html'


class EducationCreateView(AttorneyEducationEditMixin, CreateView):
    permission_required = 'educations.add_education'


class EducationUpdateView(AttorneyEducationEditMixin, EducationPermissionMixin,
                          UpdateView):
    permission_required = 'educations.change_education'


class EducationDeleteView(AttorneyEducationMixin, EducationPermissionMixin,
                          DeleteView):
    template_name = "attorney/shared/title_delete.html"
    permission_required = 'educations.delete_education'

我甚至尝试通过以下方式覆盖表单操作:

{% if '/attorney-profile-wizard/additional-information/' not in request.META.HTTP_REFERER %}
                  <form action="{% url "attorney_edit" url_key %}" method="post">
                 {% else %}
                  <form action="/attorney-profile-wizard/additional-information/" method="post">
                 {% endif %}
                {{ form.as_p }}
                {% csrf_token %}
                <div class="d-flex justify-content-end">
                {% if '/attorney-profile-wizard/additional-information/' not in request.META.HTTP_REFERER %}
                      <a href="{% url "attorney_edit" url_key %}"
                        class="material-button bg-red pl-2">Cancel</a>
                {% else%}
                       <a href="/attorney-profile-wizard/additional-information/"
                        class="material-button bg-red pl-2">Cancel</a>
                {% endif %}

                    <!--<a href="{% url "attorney_edit" url_key %}"-->
                    <!--class="material-button bg-red pl-2">Cancel</a>-->
                    <input type="submit" class="material-button" name="" value="Save Education">
                </div>
            </form>

这没有用,显然不是正确的方法。我在哪里可以找到该操作的网址?我什至检查了urls.py文件,但没有太大帮助。

0 个答案:

没有答案