尝试创建表单

时间:2020-05-15 03:29:23

标签: python html django django-forms

目前,我的模型如下

class Customer(models.Model):

    TITLE = (
            ('Mr', 'Mr'),
            ('Mrs', 'Mrs'),
            ('Miss', 'Miss'),
            ('Ms', 'Ms'),
            ('Dr', 'Dr'),
            ('Sir', 'Sir'),
            ('Madam', 'Madam'),
            )

    STATUS = (
            ('Active', 'Active'),
            ('On hold', 'On hold'),
            )

    GENDER = (
            ('Male', 'Male'),
            ('Female', 'Female'),
            )

    ROLE = (
            ('Customer', 'Customer'),
            ('Admin', 'Admin'),
            )



    title = models.CharField(max_length=200, null=True, choices=TITLE)
    first_name = models.CharField(max_length=200, null=True)
    middle_name = models.CharField(max_length=200, blank=True,default='')
    last_name = models.CharField(max_length=200, null=True)
    phone = models.CharField(max_length=200, null=True)
    country = CountryField()
    birth_year = models.CharField(max_length=4, null=True)
    gender = models.CharField(max_length=200, null=True, choices=GENDER)
    email = models.CharField(max_length=200, null=True)
    password = models.CharField(max_length=200, null=True)
    status = models.CharField(max_length=200, null=True,choices=STATUS)
    date_created = models.DateTimeField(auto_now=True, null=True)
    profile_pic = models.ImageField(null=True, blank=True, default='images/default.png')
    role = models.CharField(max_length=200, null=True, choices=ROLE)



    def __str__(self):
        return self.first_name


下面是我的表格


class CustomerProfileForm(ModelForm):
    class Meta:
        model = Customer
        fields = ['id', 'title','first_name','middle_name','last_name','phone','country','birth_year','gender','email','password']

视图在下面

def NewCustomerProfile(request):

    forms = CustomerProfileForm(request.POST)
    if request.method == 'GET':
        forms = CustomerProfileForm(request.POST)
        if forms.is_valid():
            forms.save()
            return redirect('/')

下面显示的是表单模板之前的模板

    <a class="btn btn-primary" name = 'new_customer' href="{% url 'new_customer_profile' %}" role="button">NEW</a>

及以下内容显示了表单将包含在其中的模板


<div class="row">
    <div class="col-md-6">
        <div class="card card-body">

            <form action="" method="POST">


                <form action="" method="GET">

                    {% csrf_token %}
                  {{formie|crispy }}

                    <hr>


                <input type="submit" name="Update">
            </form>
        </form>
        </div>
    </div>
</div>

当前我的模板显示为空白。

如何根据需要创建表单?

如果能解决的话,将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:1)

views.py 

def NewCustomerProfile(request):
    form = CustomerProfileForm()
    if request.method == 'POST':
        form = CustomerProfileForm(request.POST or None)
        if form.is_valid():
            form.save()
            return redirect('/')
    return render(request, 'your_html_temp.html', {'form': form})



your template can be like this :- 

{% load crispy_forms_tags %}

<div class="row">
    <div class="col-md-6">
        <div class="card card-body">
            <form action="" method="POST">
                {% csrf_token %}
                {{form|crispy }}
                <hr>
                <input type="submit" name="Update">
            </form>
        </div>
    </div>
</div>