【问题标题】:Django form not saving to database via ModelFormDjango 表单未通过 ModelForm 保存到数据库
【发布时间】:2022-01-07 00:26:31
【问题描述】:

我正在尝试使用 ModelForm 将我的表单添加到数据库中,但它没有通过甚至在视图中打印表单,我还尝试通过清理数据在视图中单独执行每个字段仍然没有插入数据库中

我的观点.py

def index(request):
    component = Component.objects.all()
    form = ComponentModelForm()
    if request == 'POST':
        form = ComponentModelForm(request.POST)
        print(form)
        if form.is_valid():
            form.save()
            return redirect('/maintenance')  
        else:
            form = ComponentModelForm()              
    context = {
        'components': component,
        'form':ComponentModelForm(),
    }
    return render(request, 'maintenance/index.html', context)

models.py

class Component(MPTTModel):
    name = models.CharField(max_length=100)
    manufacturer = models.CharField(max_length=100)
    model = models.CharField(max_length=100)
    serial_number = models.CharField(max_length=255)
    price = models.IntegerField()
    note = models.TextField()
    parent = TreeForeignKey("self", verbose_name=(
        "Parent Component"), blank=True, null=True, related_name='children', on_delete=models.CASCADE)

    def __str__(self):
        return f"{self.id}, {self.name}"

forms.py

class ComponentModelForm(forms.ModelForm):
    class Meta:
        model = Component
        fields = ("name",
                  "manufacturer",
                  "model",
                  "serial_number",
                  "price",
                  "note",
                  "parent",)

模板:

   <div>
         <form method='POST' action=''>
            {% csrf_token %}
            {{form.as_p}}
            <input type="submit" value='Create'/>
         </form>
      </div>

【问题讨论】:

    标签: django django-models django-views django-forms django-templates


    【解决方案1】:

    试试

    If request.method == 'POST'
    

    代替:

    If request == 'POST'
    

    【讨论】:

    • 成功了!非常感谢
    猜你喜欢
    • 1970-01-01
    • 2018-10-10
    • 2018-07-07
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    相关资源
    最近更新 更多