我正在创建一个市场,选择的用户可以拥有他们的商店和他们的产品。创建Createview类时,我正在运行一个错误。我需要表单,其中用户添加了一个新的产品,返回他自己的商店名称的基础上的商店模型,但看起来有一个错误,如上面。以下是我的应用程序:
models.py
class Shop(models.Model):
shop_name = models.CharField(max_length=120)
owner = models.OneToOneField(User,on_delete=models.CASCADE, related_name="owner")
def __str__(self):
return self.shop_name
class Product(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,)
shop = models.ForeignKey (Shop, on_delete=models.CASCADE, related_name='shop')
category = models.ForeignKey(Category, verbose_name ='Categoria',on_delete=False )
title = models.CharField(max_length=120)
slug = models.SlugField(blank= True, null=True, unique = True)views.py
class ProductCreateView(LoginRequiredMixin,SubmitBtnMixin, CreateView):
model = Product
form_class = ProductForm
template_name = 'form.html'
success_url = '/products/list'
submit_btn = 'Add Product'
def form_valid(self, form):
new_product = form.save(commit=False)
user = self.request.user
s = Shop.objects.get (owner=user)
new_product.shop = s
new_product.save()
return super (ProductCreateView, self).form_valid(form)FORM.PY
class ProductForm(ModelForm):
class Meta:
model = Product
fields = ['category', 'title', 'description', 'price', 'image']
exclude = ['shop']发布于 2018-11-19 02:15:46
在您的产品模型中,我没有看到属性'description',但是在您的表单中,您已经指定了一个字段'description‘。尝试将null=True、blank=True添加到产品模型中的用户字段中。
class Product(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE, null=True, blank=True)
shop = models.ForeignKey (Shop, on_delete=models.CASCADE, related_name='shop')
category = models.ForeignKey(Category, verbose_name ='Categoria',on_delete=False )
title = models.CharField(max_length=120)
slug = models.SlugField(blank= True, null=True, unique = True)https://stackoverflow.com/questions/53364569
复制相似问题