@ron6500

Почему не сохраняются данные в БД?

Ситуация такая: есть три таблицы, Users(стандартная django), UserInfo и UserCareer. Связи между Users и UserInfo один к одному, а между UserInfo и UserCareer один ко многим. Я сделал форму и вью для модели UserCareer, но данные не сохраняются. Выдает следующую ошибку: 1048, "Column 'user_id' cannot be null".
Подскажите, что делаю не так и почему не сохраняется user_id?
Код:
models.py
from django.contrib.auth.models import User

class UserInfo(models.Model):
    """ Users data """
    user = models.OneToOneField(User)
    ...
class UserCareer(models.Model):
    """ Users Work Expirience """
    user = models.ForeignKey(UserInfo)
    ...

urls.py
urlpatterns = [
    url(r'^career/(?P<user_id>\d+)/add/$', views.new_career, name='new_career'),
]

views.py
def new_career(request, user_id):

    user_info = UserInfo.objects.get(id=user_id)

    if request.method != 'POST':
        form = UserCareerForm
    else:
        form = UserCareerForm(data=request.POST)
        if form.is_valid():
            user_career = form.save()
            user_career.user = user_info.id
            user_career.save()
            return HttpResponseRedirect(reverse('/'))

    context = {
        'user_info': user_info,
        'form': form,
    }
    return render(request, 'user_resume/career.html', context)

career.html
<form action="{% url 'user_resume:new_career' user_info.id %}" method='post'>
        {% csrf_token %}
        {{ form.as_p }}
    <button name="submit">Save</button>
</form>
  • Вопрос задан
  • 208 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы