OrderForm не сохраняет данные в базу данных django

Я создаю webapp, который позволяет пользователю вводить информацию в форму, которая затем сохраняет данные в django. Все работает хорошо, я могу добавить информацию в форму в шаблоне и нажать submit, но данные не сохраняются в базу данных (я не могу увидеть их в моей панели администратора в таблице 'Order'. У меня есть if form.is_valid() form.save() в моем файле views.py, который должен ПОСТАВИТЬ данные в мою базу данных, но этого не происходит.

Кто-нибудь знает, что я делаю неправильно?

Заказ модели из models.py

class Order(models.Model):
    STATUS = (
            ('Pending', 'Pending'),
            ('Out for delivery', 'Out for delivery'),
            ('Delivered', 'Delivered'),
            )
    # on_delete = If customer is delete, we dont delete child (orders), customer just becomes null without deleting order
    customer = models.ForeignKey(Customer, null=True, on_delete= models.SET_NULL)
    product = models.ForeignKey(Product, null=True, on_delete= models.SET_NULL)
    date_created = models.DateTimeField(auto_now_add=True, null=True)
    status = models.CharField(max_length=200, null=True, choices=STATUS)

forms.py

Класс OrderForm наследуется от CreateOrder views.py

from django.forms import ModelForm
from .models import Order

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

функция createOrder из views.py:

def createOrder(request):
    
    form = OrderForm()
    if request.method == 'POST':
        #print('Printing POST:',request.POST)
        form = OrderForm(request.POST)
        #form handles the process of saving to database/
        if form.is_valid():
            form.save
            return redirect('/')
    context = {'form':form}
    return render(request, 'accounts/order_form.html', context)

Вы вызываете функцию с помощью form.save, вы забыли ():

views.py

def createOrder(request):
    
    form = OrderForm()
    if request.method == 'POST':
        #print('Printing POST:',request.POST)
        form = OrderForm(request.POST)
        #form handles the process of saving to database/
        if form.is_valid():
            form.save()  # Here
            return redirect('/')
    context = {'form':form}
    return render(request, 'accounts/order_form.html', context)
Вернуться на верх