设置排除表单字段

时间:2014-05-10 14:15:20

标签: python django forms

我在插入表单字段时遇到问题。

这是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',]

用户应该看到什么: enter image description here

如您所见,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?以及如何设置它?

1 个答案:

答案 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()