首页 > 解决方案 > 我的订单没有保存。django中的表格

问题描述

在这里你可以看到我的models.py。

class Customer(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name = 'customer', null=True, blank=True)
    name = models.CharField(max_length=200, null=True)
    email = models.CharField(max_length=200)
    tel = models.CharField(max_length=200)
    def __str__(self):
        return self.name

class Order(models.Model):
    customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, null=True, blank=True)
    imya = models.CharField(max_length=200, null=False)
    familiya = models.CharField(max_length=200, null=False)
    tel = models.CharField(max_length=200, null=False)
    address = models.CharField(max_length=200, null=False)
    city = models.CharField(max_length=200, null=False)
    state = models.CharField(max_length=200, null=False)
    date_ordered = models.DateTimeField(auto_now_add=True)
    complete = models.BooleanField(default=False)
    transaction_id = models.CharField(max_length=100, null=True)

    def __str__(self):
        return str(self.id)
        


    

在这里你可以看到我的forms.py。这里我只是创建了表单,但是数据应该来自模板输入。

from django import forms 
from django.forms import ModelForm
from .models import *

class OrderForm(forms.ModelForm):
    class Meta:
        model = Order
        fields = '__all__'
        

视图.py

def checkout(request):
    data = cartData(request)
    
    cartItems = data['cartItems']
    order = data['order']
    items = data['items']
    
    form = OrderForm()
    if request.method == 'POST':
        name = request.POST.get('name')
        surname = request.POST.get('surname')
        email = request.POST.get('email')
        number = request.POST.get('number')
        address = request.POST.get('address')
        city = request.POST.get('city')
        state = request.POST.get('state')
        form = OrderForm(request.POST)
        if form.is_valid():

            Order.object.create(
                imya=name,
                familiya=surname,
                tel=number,
                adres=address,
                city=city,
                state=state,
                )
            form.save()
            return HttpResponse('Заказ отправлен', safe=False)

    context = {'items':items, 'order':order, 'cartItems':cartItems, 'form':form}
    return render(request, 'store/checkout.html', context)

我的模板:

<section class="shop checkout section">
            <div class="container">
                <div class="row"> 
                    <div class="col-lg-8 col-12">
                        <div class="checkout-form">
                            <h2>Make Your Checkout Here</h2>
                            <p>Please register in order to checkout more quickly</p>
                            <!-- Form -->
                            <form class="form" method="post" action="#">
                                {% csrf_token %}
                                <div class="row">
                                    <div class="col-lg-6 col-md-6 col-12">
                                        <div class="form-group">
                                            <label>First Name<span>*</span></label>
                                            <input type="text" name="name" placeholder="" required="required">
                                        </div>
                                    </div>
                                    <div class="col-lg-6 col-md-6 col-12">
                                        <div class="form-group">
                                            <label>Last Name<span>*</span></label>
                                            <input type="text" name="surname" placeholder="" required="required">
                                        </div>
                                    </div>
                                    <div class="col-lg-6 col-md-6 col-12">
                                        <div class="form-group">
                                            <label>Email Address<span>*</span></label>
                                            <input type="email" name="email" placeholder="" required="required">
                                        </div>
                                    </div>
                                    <div class="col-lg-6 col-md-6 col-12">
                                        <div class="form-group">
                                            <label>Phone Number<span>*</span></label>
                                            <input type="number" name="number" placeholder="" required="required">
                                        </div>
                                    </div>
                                    <div class="col-lg-6 col-md-6 col-12">
                                        <div class="form-group">
                                            <label>Address<span>*</span></label>
                                            <input type="text" name="adress" placeholder="" required="required">
                                        </div>
                                    </div>
                                    <div class="col-lg-6 col-md-6 col-12">
                                        <div class="form-group">
                                            <label>City<span>*</span></label>
                                            <input type="text" name="city" placeholder="" >
                                        </div>
                                    </div>
                                    <div class="col-lg-6 col-md-6 col-12">
                                        <div class="form-group">
                                            <label>State<span>*</span></label>
                                            <input type="text" name="state" placeholder="" required="required">
                                        </div>
                                    </div>
                                                                        
                                    <div class="col-12">
                                        <div class="form-group create-account">
                                            <input id="cbox" type="checkbox">
                                            <label>Create an account?</label>
                                        </div>
                                    </div>
                                    <input type="submit" value="Продолжить">
                                </div>
                            </form>

在我看来,我想为我的订单模型创建一个对象。我试过这段代码,它没有给出任何错误,但它不起作用。请帮助保存订单。

标签: djangodjango-modelsdjango-viewsdjango-forms

解决方案


推荐阅读