2011-03-18 23 views
7

Ben djangocode de ilgili olabilir ama gerçekten yardımcı olmadı gibi görünen bir iş parçacığı karşılaştım. Bir model formu kaydetmeye çalışıyorum ve bir istisna atıyor. Benim modelimde aynı yabancı tuşa iki kez atıfta bulunmanın alakalı olabileceğini düşünüyorum. Yabancı anahtar alanlarından birinde benzersiz = True tanımlaması ile de ilgili olabilir. Ben bu beyanı delil başarısız olduğunu düşünmüşTasarruf ModelForm hatası (veri doğrulama yoktu çünkü USER_MESSAGE oluşturulamadı)

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.') 
Yolun at başarısız

, "messageform.save (= False taahhüt). Man bilmiyorum.

modelform tarafından alındığı POST verilerini konu ve mesaj alanlarının içermektedir. Bu veriler başarıyla benim modelform tarafından doğrulanır.

o ilgili isimleri mi, eşsiz = Doğru ... ne?

Teşekkür verir

cevap

23
Bu çizgi ihtiyacı

if messageform.is_valid: 

if messageform.is_valid(): 

Temelde, hata geçersiz forma save() arayarak geliyor olması:

İşte senin sorunun.

+0

Aslında bu konuda üzgünüm. Bunu yakalamalıydım. Yorgunum ve çok fazla uğraşmaya çalışıyorum. Bugün bana muazzam yardım ettin, Yuji – Ben

+0

Son adam yok! Hata mesajını okumadıysam ve kodun etrafından nasıl geçtiğini kontrol etmem gerekirse - bu sadece "forms.errors", yani save(), ve sonra farkettim(). –

+0

Oh, Hallelujah! Aynı tuzağa düştüm. –

İlgili konular