【发布时间】:2021-01-19 06:29:36
【问题描述】:
我有 2 个型号的产品和评论
class ProductReview(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
review_heading = models.CharField(max_length=30)
review_date = models.DateTimeField(auto_now_add=True)
review_description = models.CharField(max_length=200)
review_rating = models.PositiveIntegerField()
review_product_image = models.ImageField(upload_to='review_image/', blank=True)
class Product(models.Model):
name = models.CharField(max_length=100)
price = models.IntegerField(default=0)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
description = models.CharField(max_length=300, default='', null=True, blank=True)
product_image = models.ImageField(upload_to='', blank=True)
is_varient = models.BooleanField(default=False)
has_varient = models.BooleanField(default=False)
is_published = models.BooleanField(default=False)
varient_property = models.ManyToManyField(to='store.AttributeValue', blank=True)
parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True)
我正在使用表单保存评论。
def post(self, request, *args, **kwargs):
form = ReviewForm(request.POST)
if form.is_valid():
instance = ProductReview(**form.cleaned_data)
instance.save()
print(model_to_dict(instance))
# i have also tried form.save() but results the same
# form.save()
return redirect('OrderView')
model_to_dict 输出是
{'id': None, 'user': 1, 'product': 278, 'review_heading': 'nice product', 'review_description': 'ok', 'review_rating': 4, 'review_product_image': <ImageFieldFile: None>}
这里它返回 id=none 并且没有保存任何内容。
如果我保存产品的子实例,它会被保存并返回 id=25
但是当我保存主产品时,它会返回id=none
请帮我保存主产品
【问题讨论】:
-
请出示您的
ReviewForm -
感谢@AbdulAzizBarkat 的帮助,我在模型保存方法中发现了我的错误。
标签: python django django-models