如何用后退和下一个按钮打破django表单

时间:2015-08-18 00:26:09

标签: html django django-forms

我已联系我们这个模型,并希望将其分为两个部分:

  1. 姓名,电子邮件,联系电话
  2. 主题,消息
  3. 如何使用BACK和NEXT按钮将这两个部分分成不同的页面?

    models.py

    class ContactUs(models.Model):
        name = models.CharField(max_length=100)
        email = models.EmailField(max_length=120)
        contact_number = models.CharField(max_length=100, null=True, blank=True)
        subject = models.CharField(max_length=120, null=True, blank=True)
        message = models.TextField(max_length=850)
    
        def __unicode__(self):
            return self.name
    

    HTML

    <div class="row">
                <div class="col-lg-8 col-lg-offset-2 text-center">
                    <form method="POST" action='{% url "contact" %}' role="form" id="contact-form" class="contact-form"> {% csrf_token %}
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <input type="text" class="form-control" name="name" id="name" placeholder="Name*" value="{{ name }}">
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <input type="email" class="form-control" name="email" id="email" placeholder="E-mail*" value="{{ email }}">
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <input type="text" class="form-control" name="contact_number" id="contact_number" placeholder="Contact Number" value="{{ contact_number }}">
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <input type="text" class="form-control" name="subject" id="subject" placeholder="Subject" value="{{ subject }}">
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-12">
                                <div class="form-group">
                                    <textarea class="form-control textarea" rows="3" name="message" id="message" placeholder="Message*">{{ message }}</textarea>
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-12">
                                <button type="submit" class="btn btn-primary2 btn-xl page-scroll pull-right">Submit</button>
                            </div>
                      </div>
                    </form>
                </div>
            </div>
    

    forms.py

    class ContactUsForm(forms.ModelForm):
        class Meta:
            model = ContactUs
            fields = ["name",
                    "email",
                    "contact_number",
                    "subject",
                    "message",]
    

1 个答案:

答案 0 :(得分:0)

直到Django 1.7,您将使用Django附带的表单工具。 尽管如此,他们还是被释放出了Django。您现在可以在单独的模块中找到它们:https://github.com/django/django-formtools

除此之外,它还有一个所谓的form wizard,可以完全满足您的需求。

文档非常详细,如果没有从那里复制粘贴代码示例,我就无法添加。 creating templates for the forms部分有一个示例,其中包含后退和上一个按钮。