gpt4 book ai didi

python - Django ModelForm 没有将数据保存到数据库,Form.save 不起作用?

转载 作者:行者123 更新时间:2023-12-02 00:33:01 26 4
gpt4 key购买 nike

  • 列表项

你好我是 django 初学者,遇到困难有人可以帮助我我不知道我做错了什么吗?我正在尝试创建一个表单并使用 form.save() 通过它保存一些数据。我也是新来的,所以不要介意任何错误。

这是我的模型:

from django.db import models
from stores.models import Store


class Category(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=30)

def __str__(self):
return self.name


class Product(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=30)
price = models.DecimalField(max_digits=5, decimal_places=5)
image = models.ImageField(upload_to='upload_to/')
category = models.ForeignKey(Category, default='Default', on_delete=models.CASCADE, blank=False, null=False)
store = models.ForeignKey(Store, on_delete=models.CASCADE, blank=False, null=False)

这是我的看法:

from django.shortcuts import render, redirect
from .forms import NewPro


def pro(request):

if request.method == 'POST':
form = NewPro(request.POST)
if form.is_valid():
form.save()
return redirect('stores_list')

else:
form = NewPro()

return render(request, "default/add_product.html", {'form': form})


def product_list(request):
return render(request, 'default/product_list.html')

这是我的表格:

from django import forms
from .models import Product


class NewPro(forms.ModelForm):
class Meta:
model = Product
fields = ('name', 'price', 'image','category', 'store',)

默认/add_product.html :

{% extends 'default/base.html' %}
<html>
<head><title>E-Commerce App</title></head>
{% block content %}
<h1>Add Product details</h1>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Add Product</button>
</form>{% endblock %}
</html>

Settings.py 设置

MEDIA_ROOT = '/home/saifi/Saif_project/final_project/MEDIA_ROOT/upload_to'

最佳答案

我可以在 View 中看到一些缩进问题 - 但我猜这只是复制到 Stackoverflow 时的格式问题。

form.is_valid() 检查将验证您所有的表单字段,并且只有在所有输入字段都有效时才会写入数据库。如果它没有保存,我首先要检查的是表单错误。

在您的模板中,您可以使用 {{form.errors}} 呈现错误,它会列出每个字段和错误。

关于python - Django ModelForm 没有将数据保存到数据库,Form.save 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51013909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com