Джанго многоточие отношения сохранить

у меня две модели:

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']

но когда я сохраняю, покажите мне это сообщение:

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


person Jmint    schedule 23.04.2015    source источник
comment
Из какой строки кода исходит ошибка? Попробуйте вставить import pdb; pdb.set_trace() в код, чтобы вы могли видеть, как выглядит объект, который вы пытаетесь сохранить.   -  person emschorsch    schedule 23.04.2015
comment
строка f.usuario = request.user   -  person Jmint    schedule 24.04.2015


Ответы (1)


В публикации установите модель = Публикация:

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']
person mcastle    schedule 23.04.2015
comment
извините, я уже обновил вопрос, это не ошибка, но спасибо - person Jmint; 24.04.2015
comment
Ваш отступ был отключен, и использовать exclude... вместо этого использовать fields - плохая практика. Кроме того, верно ли usuario или вы имеете в виду user? - person mcastle; 24.04.2015
comment
я написал код в уме, а не копипаст, извините, но правильная строка f.user = request.user, спасибо - person Jmint; 24.04.2015