2015-04-23 7 views
1

У меня есть две модели:Джанго manytomany отношение сохранить

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:

должен иметь значения для fiel d "публикация" перед этим отношением «многие ко многим» можно использовать пожалуйста, в чем проблема?

+0

Что строка кода ошибки приходит? Попробуйте вставить import 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' правильный, или вы имеете в виду' user'? – mcastle

+0

Я написал код из своего разума, но не скопировал пасту, извините, но правильная строка - f.user = request.user, спасибо – Jmint

Смежные вопросы