我正在创建产品创建表单,并且我在产品模型中有5个图像字段,用户可以根据要求上传5或0张图像,但是表单不保存数据
python
class Category(models.Model):
cate_id = models.AutoField(primary_key=True)
category_name = models.CharField(max_length=45)
class Product(models.Model):
product_id = models.AutoField(primary_key=True)
product_name = models.CharField(max_length=45)
product_description = models.CharField(max_length=500, blank=True, null=True)
price = models.IntegerField()
quantity = models.IntegerField()
product_category_fk = models.ForeignKey('Category', on_delete=models.CASCADE,db_column='product_category_fk',related_name='pros')
image1 = models.ImageField(upload_to='chand_imgs',blank=True)
image2 = models.ImageField(upload_to='chand_imgs',blank=True)
image3 = models.ImageField(upload_to='chand_imgs',blank=True)
image4 = models.ImageField(upload_to='chand_imgs',blank=True)
image5 = models.ImageField(upload_to='chand_imgs',blank=True)
#forms.py
class CategoryForm(forms.ModelForm):
category_name = forms.CharField(max_length=50)
class Meta:
model = Category
fields = ('category_name', )
class ProductForm(forms.ModelForm):
class Meta():
model = Product
fields = ('product_category_fk','product_name','product_description','price','quantity','image1','image2','image3','image4','image5',)
#views.py
@login_required
def product_management(request):
form = ProductForm(data=request.POST)
if request.method =='POST':
if form.is_valid():
post=form.save(commit=True)
if 'picture' in request.FILES:
form.picture =request.FILES['picture']
return HttpResponseRedirect(reverse('index'))
else:
return render(request,'chandler/index.html',{'form':form})
else:
form = ProductForm()
return render(request,'chandler/product.html',{'form':form})
#product.html
{% if user.is_authenticated %}
<form method=”post” enctype=”multipart/form-data” action="" >
<h2>New post</h2>
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Save</button>
</form>
{% else %}
<h2>Please login first!!!!</h2>
{% endif %}
表单未保存任何数据,我知道我的视图不正确,已经尝试了其他方法
答案 0 :(得分:0)
更改
<form method=”post” enctype=”multipart/form-data” action="" >
到
<form method="post" enctype="multipart/form-data" action="" >