2015-04-23 143 views
1

我有兩個型號:Django的多對多關係保存

class Publication(models.Model): 
    title = models.CharField(max_length=30) 
    user = models.ManyToManyField(settings.AUTH_USER_MODEL) 

class Auth_User(models.Model): 
    email = models.CharField(max_length=100) 

和我的觀點

form = publicationform(request.POST) 
if form.is_valid(): 
    f = form.save(commit=False) 
    f.user = request.user 
    f.save() 
    form.save_m2m() 
    return redirect('/') 

和我的形式:

class publicationform(ModelForm): 
    class Meta: 
    model = Publication 
    exclude = ['user'] 

但是當我救我拿這個messagge:

需要有一個值ð「出版物」beforre這種多對多的關係可以使用 請問是什麼問題?

+0

是來自哪一行的代碼的錯誤?嘗試插入導入pdb;將pdb.set_trace()添加到代碼中,以便您可以查看要保存的對象的外觀。 – emschorsch

+0

該行是f.usuario = request.user – Jmint

回答

0

在出版物中,設置模型=出版物:

form = PublicationForm(request.POST) 
if form.is_valid(): 
    f = form.save(commit=False) 
    f.user = request.user 
    f.save() 
    form.save_m2m() 
    return redirect('/') 


class PublicationForm(ModelForm): 
    class Meta: 
     model = Publication 
     fields = ['title'] 
+0

對不起,我已經更新了這個問題,這不是錯誤,但是謝謝 – Jmint

+0

您的縮進已關閉,使用'exclude'不好的做法...使用'fields' 。另外,是'usuario'正確,還是你的意思是'用戶'? – mcastle

+0

我寫了我的腦海裏的代碼,不是複製粘貼,不好意思,但是正確的一行是f.user = request.user,謝謝 – Jmint