我遇到了一个似乎可能与djangocode相关的线程,但它并没有真正帮助。我正在尝试保存一个模型,它正在抛出异常。我认为这可能与我的模型中两次引用相同的外键有关。它也可能与其中一个外键字段中unique = True的定义有关。我不知道
class User_Message(models.Model):
recipient=models.ForeignKey(User, unique=True, related_name="recipients")
subject=models.CharField(max_length=100)
sender=models.ForeignKey(User, related_name="senders")
message=models.TextField(max_length=500)
sent=models.DateField(auto_now_add=True)
def __unicode__(self):
return self.subject
if request.method=="POST" and request.POST['id_message']:
messageform=User_MessageForm(request.POST)
recipient=[] #receiver of mail must be a list
recipient.append(post.user)
if messageform.is_valid:
message=messageform.save(commit=False)
message.sender=user
message.recipient=post.user
return HttpResponse('%s %s' %(user,post.user))
message.save()
#send the email
subject=messageform.cleaned_data['id_subject']
body=messageform.cleaned_data['id_message']
try:
send_mail(subject, body, sender, recipient)
except BadHeaderError:
return HttpResponse('Invalid header found.')
它在线路上失败了,“messageform.save(commit = False)。我认为这个陈述是失败证明。
modelform接收的POST数据包含主题和消息字段。我的模型成功验证了此数据。
是相关名称,唯一=真......什么给出?
由于
答案 0 :(得分:32)
这是你的问题:
if messageform.is_valid:
该行必须
if messageform.is_valid():
基本上,错误来自于在无效表单上调用save()
。