Python 设置排除表单字段
我在表单字段中插入时遇到问题 这是comment models.py:Python 设置排除表单字段,python,django,forms,Python,Django,Forms,我在表单字段中插入时遇到问题 这是comment 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=
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',]
用户应该看到什么:
正如您所看到的,产品id上的注释不应该出现在页面上,但我必须在该字段中插入一个值。
在视图中,我的代码如下:
.
.
但是它看起来form.Meta.model.comment\u on\u product\u id=selected\u object.product\u id不起作用。
错误:
失败行包含112,null,usernaem,注释文本,18:33:39.848621
为什么它是空的?我应该如何设置它?访问表单上的实例,而不是元类
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()
谢谢但这并没有起作用。错误:无法分配2:UserComment.comment\u on\u product\u id必须是存储实例。2是当前产品id将模型上产品id上的名称comment更改为comment on product。然后保持我写的相同的视图逻辑。否则,您需要将产品标识上的form.instance.comment\u更改为form.instance.comment\u on\u product\u id\u idcomment\u on\u product\u id\u id->第二个标识是什么?模型上的字段表示FK引用的实例的实际主键。这就是为什么您永远不应该将FK字段命名为\u id。
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()