Я, наверное, вырывался из-за того, что здесь я не вижу проблемы, и я уверен, что это нечто тривиальное.Django save form с внешним ключом пользователя
У меня есть модель, модель которой является профилем (профиль является пользователем через многие формы на сайте, работает нормально). В этой конкретной форме я использую только одно поле. Когда я пытаюсь сохранить его, он ломается: значение null в столбце «user_id» нарушает непустое ограничение. Пользователь является внешним ключом в модели профиля.
У меня есть аналогичные формы/виды, которые работают только в одном поле из модели профиля и сохраняют на них все хорошо. Я сравниваю код, и я просто не вижу разницы. Как я уже сказал, я, вероятно, немного сгорел.
Это моя форма:
class CompleteRegistration(forms.ModelForm):
class Meta:
model = Profile
fields = ('resume',)
Это мнение:
def complete_registration(request):
if request.method == "POST":
form = CompleteRegistration(request.POST)
if form.is_valid():
form.save()
return redirect(request.GET.get('next', ''))
else:
form = CompleteRegistration()
context = {
'form': form
}
return render_to_response('accounts/complete_registration.html', context, RequestContext(request))
Это должно быть очень простой, но я, очевидно, что-то отсутствует. Модель профиля также имеет поле uuid. Он существует в неудачной строке, что делает меня еще более озадаченным. Почему существует uuid и нет пользователя? Есть идеи? Может быть, потому, что экземпляр пользователя в представлении на самом деле является SimpleLazyObject?
Вы имеете в виду в ветке else, вот так? 'form = CompleteRegistration (instance = request.user.get_profile())' - потому что это тоже не работает; У меня такая же проблема. – dnmh
И в 'if request.method == 'POST':' и 'else:' ветке. – knbk
Я добавил это в ветку if: 'form = CompleteRegistration (request.POST, instance = request.user.get_profile())' - он больше не сломается, все идет хорошо. Однако резюме (FieldFile) не сохраняется. Это вообще другая проблема или это связано с этим? Благодарю. – dnmh