Django 提交表单 POST 无效

Django submit form POST not valid

我正在尝试提交表格来填充数据库。我无法使 POST 正常工作。它看起来无效,但我不知道我需要做什么来更正它。

我进行了一些调试以查看当我单击提交并发送 POST 时会发生什么。我不知道如何发送 created_at 或 created_by。我假设这些是 POST 无效且数据库未填充的原因。

models.py

from django.db import models
from django.contrib.auth.models import User
from django.forms import ModelForm

class Order(models.Model):
    order_name = models.CharField(max_length=100, unique=True, null=True, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    created_by = models.ForeignKey(User, related_name='Project_created_by', on_delete=models.DO_NOTHING)

    def __str__(self):
        return self.order_name

class Ce_Base(models.Model):
    ce_hostname = models.CharField(max_length=15)
    new = models.BooleanField()
    location = models.TextField()

    order_reference = models.ManyToManyField(Order)

forms.py

from django.forms import ModelForm
from .models import Order

class OrderForm(ModelForm):
    class Meta:
        model = Order
        fields = ['order_name']

views.py

from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from .models import Order
from .models import Ce_Base
from .forms import OrderForm

@login_required
def home(request):
    form = OrderForm()
    if request.method == 'POST':
        form = OrderForm()
        form.instance.created_by = request.user
        print(request.POST)
        if form.is_valid():
            form.save()
    context = {
        'order': Order.objects.all(),
        'form': form,
    }
    return render(request, 'orchestration/order_create.html', context)

@login_required
def orderprocessing(request):
    context = {
        'ce_base': Ce_Base.objects.all()
    }
    return render(request, 'orchestration/order_processing.html', context)

html

{% extends "orchestration/base.html" %}
{% block content %}
  <h1>Input Form</h1>
    <form action="" method="post">
        {% csrf_token %}
        {{ form }}
        <input type="submit" >
    </form>
  <h1>Orders</h1>
  {% for each_order in order %}
    <p>Order Name: {{ each_order.order_name }}</p>
    <p>Created On: {{ each_order.created_at }}</p>
    <p>Created By: {{ each_order.created_by }}</p>
  {% endfor %}
{% endblock content %}

这是我点击提交按钮时的终端输出

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
May 12, 2022 - 16:15:40
Django version 4.0.2, using settings 'dcn_automation.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
<QueryDict: {'csrfmiddlewaretoken': ['MQVrDwqyT8Y6ARAF9CCyuCSwavz5BAVmi2GdxMgvxFlHmiD1M8Cq6y0VRVummR82'], 'order_name': ['test']}>

如果不传递表单中的数据,则验证失败。

form = OrderForm(request.POST)