保存ModelForm错误(无法创建User_Message,因为数据未验证)

Ben*_*Ben 14 django django-models django-forms

我遇到了一个似乎可能与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.')
Run Code Online (Sandbox Code Playgroud)

它失败了,"messageform.save(commit = False).我认为这个陈述是失败证明.

modelform接收的POST数据包含主题和消息字段.我的模型成功验证了此数据.

是相关名称,唯一=真......什么给出?

谢谢

Yuj*_*ita 36

这是你的问题:

if messageform.is_valid:
Run Code Online (Sandbox Code Playgroud)

那条线必须是

if messageform.is_valid():
Run Code Online (Sandbox Code Playgroud)

基本上,错误来自于调用save()无效表单.