表单不将数据保存在db中

时间:2019-07-18 10:03:14

标签: django django-forms

我正在创建产品创建表单,并且我在产品模型中有5个图像字段,用户可以根据要求上传5或0张图像,但是表单不保存数据 python

models.py

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 %}

表单未保存任何数据,我知道我的视图不正确,已经尝试了其他方法

1 个答案:

答案 0 :(得分:0)

更改

<form method=”post” enctype=”multipart/form-data” action="" >

<form method="post" enctype="multipart/form-data" action="" >