我正在创建一个网站,用户可以发布他们的内容,每个内容重定向到一个私人用户之间的聊天取决于内容id
我这样做是为了在私人聊天中检索内容信息。在
问题是,当用户提交表单以发布comment
时,我会收到以下错误:
Cannot assign "< User: my_user >": "userComment.seller" must be a "Profile" instance.
在我看来,我将连接的用户保存为buyer
,而将接收评论的用户保存为seller
。在
我怎样才能修正这个错误?我在下面的代码上做错了什么?在
这是模型.py:
class Profile(models.Model):
name = models.CharField(max_length=120)
user = models.OneToOneField(User, null=True, blank=True)
class Gig(models.Model):
profile = models.ForeignKey(Profile, null=True)
title = models.CharField(max_length=100, unique=True)
class userComment(models.Model):
buyer = models.ForeignKey(User, related_name="buyer", null=True)
seller = models.ForeignKey(Profile, related_name="seller", null=True)
comment = models.TextField(max_length=255, null=True)
视图.py
^{pr2}$表单.py
class userCommentForm(forms.Form):
seller = CommaSeparatedUserField(label=_(u"seller"))
comment = forms.CharField(label=_(u"comment"), widget=forms.Textarea())
def save(self, buyer):
sellers = self.cleaned_data['seller']
comment = self.cleaned_data['comment']
message_list = []
for seller in sellers:
msg = userComment(buyer=buyer, seller=seller, comment=comment,)
if seller == buyer:
print('-----------------------------------------------')
print('same')
if None is not None:
msg.parent_msg = None
None.save()
msg.save()
message_list.append(msg)
return message_list
回溯:
File "C:\Python34\projects\tryTen\private_comment\views.py" in addComment
31. form.save(buyer=request.user)
File "C:\Python34\projects\tryTen\private_comment\forms.py" in save
15. msg = userComment(buyer=buyer, seller=seller, comment=comment,)
您的
userComment
模型将feildseller
作为另一个名为Profile
的模型的外键。{{cd3>类型的要么修改}
或
检索并传递一个
seller = models.ForeignKey(Profile, related_name="seller", null=True)
到{Profile
实例。在您的CommaSeparatedUserField用户字段似乎是您尚未与我们共享的自定义字段。不过,很容易看出,清理后的数据实际上是卖家名称列表,而不是
Seller
实例。另一方面,如果它包含id,则可以执行以下操作:如果只是名字
^{pr2}$相关问题 更多 >
编程相关推荐