我在插入表单字段时遇到问题。
这是comments models.py:
class UserComment(models.Model):
comment_id= models.AutoField(primary_key=True)
comment_on_product_id= models.ForeignKey(Post)
user_name= models.CharField(max_length=50)
comment_text= models.TextField()
comment_timestamp= models.TimeField(auto_now_add=True,auto_now=True)
和我的forms.py:
class UserCommentForm(forms.ModelForm):
class Meta:
model=UserComment
exclude=['comment_on_product_id',]
用户应该看到什么:
如您所见,comment_on_product_id不应出现在页面上,但我必须在该字段中插入一个值。 在视图中我的代码如下: 。 。
form=UserCommentForm(request.POST or None)
if form.is_valid():
form.Meta.model.comment_on_product_id= selected_object.product_id
save_it=form.save(commit=False)
save_it.save()
但看起来形式.Meta.model.comment_on_product_id = selected_object.product_id dosent work。 错误: 失败的行包含(112, null ,usernaem,评论文本,18:33:39.848621)。
为什么它是null?以及如何设置它?
答案 0 :(得分:0)
访问表单上的实例,而不是Meta类。
form=UserCommentForm(request.POST or None)
if form.is_valid():
form.instance.comment_on_product_id= selected_object.product_id
save_it=form.save(commit=False)
save_it.save()