我正在創建一個用戶可以發佈其內容的網站,每個內容都重定向到一個私人用戶,以根據內容ID進行用戶聊天。無法指定必須是實例的形式保存
我這樣做,所以我可以檢索私人聊天的內容信息。
的問題是,當用戶提交表單張貼comment
我得到這個錯誤:
無法分配「<用戶:my_user>」:「userComment.seller」必須是一個「檔案」實例。
在我看來,我節省了連接用戶爲buyer
和誰將會收到的評論爲seller
用戶。
我該如何解決這個錯誤?我在下面的代碼中做了什麼錯誤?
這裏是models.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)
views.py
def addComment(request, gig_id):
gig = Gig.objects.get(id=gig_id)
username = gig.profile.user
if request.method == 'POST':
form = userCommentForm(request.POST, request.FILES)
if form.is_valid():
form.save(buyer=request.user)
return HttpResponseRedirect('/')
else:
form = userCommentForm()
form.fields['seller'].initial = username
forms.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,)
檢查'seller'的類型。並將其轉換爲'Profile'類型。 – Prajwal