Сбой ограничения NOT NULL: groups_userprofile.user_id - PullRequest
0 голосов
/ 14 апреля 2020

Итак, у меня есть две модели - модель пользователя по умолчанию и модель профиля, которая содержит больше информации. Пользователи могут зарегистрировать учетную запись, а затем войти в систему. Когда они входят в систему, она переносит их в профиль пользователя, а когда они нажимают на вкладку для редактирования профиля, она переносит их на другую страницу, которая позволяет им вводить дополнительную информацию. Когда вы нажимаете submit, выдает: NOT NULL ограничение не выполнено: groups_userprofile.user_id. Вот мой код:

models.py

from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save


##from django.db.models.signal import post_save

# Create your models here.
##adds additional info for each user
class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    about_me = models.CharField(max_length=100, default='')
    major = models.CharField(max_length=50, default='')
    classes = models.CharField(max_length=500, default='')
    image = models.ImageField(upload_to='profile_image', blank=True)
    graduation_date = models.CharField(max_length=50, default='')
    experience = models.CharField(max_length=50, default='')
    contact = models.CharField(max_length=50, default='')

def create_profile(sender, **kwargs):
    if kwargs['created']:
    user_profile= UserProfile.objects.create(user=kwargs['instance'])

post_save.connect(create_profile, sender= User)

views.py

def addUser(request):
    if request.method == 'POST':
        form = RegisterForm(request.POST or None)
        if form.is_valid():

            print('valid')
            form.save()

            return redirect('home')
        else:
            print('not valid')
            print(form.errors)
            form = RegisterForm()

            args = {'form': form}
            return render(request, 'login_register/register.html', args)

@csrf_protect
def edit_profile(request):
    if request.method == 'POST':
        form = EditProfileForm(request.POST or None)
        if form.is_valid():

            print('valid')
            form.save()

            return redirect('profile')
        else:
            print('not valid')
            print(form.errors)
            form = EditProfileForm()

            args = {'form': form}
            return render(request, 'profile_page/profiles/edit_profile.html', args)

    else:
        print('none')

edit_profile. html

<!DOCTYPE html>
<html lang="en">
{% load static %}
{% include "includes/header.html" %}
<head>
    <meta charset="UTF-8">
    <title>Edit Profile</title>
</head>
<body>
    {% block body %}
    <form action= "{% url 'edit_profile' %}" method = 'post'>
        {% csrf_token %}
        {{ form.as_p }}

        <input type="submit" name="signin" id="signin" class="btn btn-primary"  value="Log in"/>
    </form>
    {% endblock %}
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...