Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734

Ошибка при создании пользователя

09.03.2018, 11:04. Показов 1943. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Не могу понять почему возникает исключение при создании пользователя через админку.

Traceback
Кликните здесь для просмотра всего текста

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/admin/auth/user/add/

Django Version: 2.0.2
Python Version: 3.6.3
Installed Applications:
['suit',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'ckeditor',
'ckeditor_uploader',
'Profile',
'Lectures',
'Tikets',
'News',
'Calendar',
'Stream',
'Practice']
Installed Middleware:
['django.middleware.security.SecurityMidd leware',
'django.contrib.sessions.middleware.Sess ionMiddleware',
'django.middleware.common.CommonMiddlewa re',
'django.middleware.csrf.CsrfViewMiddlewa re',
'django.contrib.auth.middleware.Authenti cationMiddleware',
'django.contrib.messages.middleware.Mess ageMiddleware',
'django.middleware.clickjacking.XFrameOp tionsMiddleware']



Traceback:

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py" in execute
303. return Database.Cursor.execute(self, query, params)

The above exception (UNIQUE constraint failed: Profile_profile.user_id) was the direct cause of the following exception:

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
35. response = get_response(request)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
128. response = self.process_exception_by_middleware(e, request)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
126. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/contrib/admin/options.py" in wrapper
574. return self.admin_site.admin_view(view)(*args, **kwargs)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/contrib/admin/sites.py" in inner
223. return view(request, *args, **kwargs)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper
62. return bound_func(*args, **kwargs)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/views/decorators/debug.py" in sensitive_post_parameters_wrapper
76. return view(request, *args, **kwargs)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/utils/decorators.py" in bound_func
58. return func.__get__(self, type(self))(*args2, **kwargs2)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper
62. return bound_func(*args, **kwargs)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/utils/decorators.py" in bound_func
58. return func.__get__(self, type(self))(*args2, **kwargs2)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/contrib/auth/admin.py" in add_view
100. return self._add_view(request, form_url, extra_context)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/contrib/auth/admin.py" in _add_view
127. return super().add_view(request, form_url, extra_context)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/contrib/admin/options.py" in add_view
1553. return self.changeform_view(request, None, form_url, extra_context)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper
62. return bound_func(*args, **kwargs)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/utils/decorators.py" in bound_func
58. return func.__get__(self, type(self))(*args2, **kwargs2)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/contrib/admin/options.py" in changeform_view
1450. return self._changeform_view(request, object_id, form_url, extra_context)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/contrib/admin/options.py" in _changeform_view
1491. self.save_related(request, form, formsets, not add)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/contrib/admin/options.py" in save_related
1050. self.save_formset(request, form, formset, change=change)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/contrib/admin/options.py" in save_formset
1038. formset.save()

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/forms/models.py" in save
670. return self.save_existing_objects(commit) + self.save_new_objects(commit)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/forms/models.py" in save_new_objects
804. self.new_objects.append(self.save_new(fo rm, commit=commit))

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/forms/models.py" in save_new
950. obj.save()

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/models/base.py" in save
729. force_update=force_update, update_fields=update_fields)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/models/base.py" in save_base
759. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/models/base.py" in _save_table
842. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/models/base.py" in _do_insert
880. using=using, raw=raw)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/models/manager.py" in manager_method
82. return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/models/query.py" in _insert
1125. return query.get_compiler(using=using).execute_ sql(return_id)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in execute_sql
1281. cursor.execute(sql, params)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
100. return super().execute(sql, params)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
68. return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute_with_wrappers
77. return executor(sql, params, many, context)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/utils.py" in __exit__
89. raise dj_exc_value.with_traceback(traceback) from exc_value

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)

File "/Users/shadow/pyenv/university/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py" in execute
303. return Database.Cursor.execute(self, query, params)

Exception Type: IntegrityError at /admin/auth/user/add/
Exception Value: UNIQUE constraint failed: Profile_profile.user_id



Код модели Profile
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
from Stream.models import Stream
 
 
class Profile(models.Model):
    # TODO ошибка при создании нового пользователя из админки!
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    stream = models.OneToOneField(Stream, on_delete=models.SET_NULL, default=None, null=True, blank=True)
    last_lesson_date = models.DateField(default=None, null=True, blank=True)
 
    avatar = models.ImageField(default=None, null=True, blank=True, upload_to='uploads/Profile/')
 
 
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)
 
 
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
     instance.profile.save()
код Profile.admin.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from django.contrib import admin
from .models import User, Profile
from django.contrib.auth.admin import UserAdmin
 
admin.site.unregister(User)
 
 
class UserActivitiesInline(admin.StackedInline):
    model = Profile
    max_num = 1
    min_num = 1
 
    def has_delete_permission(self, request, obj=None):
        return False
 
 
@admin.register(User)
class ProfileAdmin(UserAdmin):
    inlines = [UserActivitiesInline]
Самое интересное что когда я создаю пользователя напрямую
Python
1
2
3
>>> from django.contrib.auth.models import User
>>> User.objects.create(username='test2', password='Qazxsw21')
<User: test2>
То юзер создается и как положено вместе с профайлом. Помогите разобраться в чем проблема может быть?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.03.2018, 11:04
Ответы с готовыми решениями:

Ошибка при создании БД
В models.py пишу таблицу from django.db import models # Create your models here. class Article (models.Model): class...

Ошибка при создании юзера
Добрый вечер. Изучаю Django и на этапе работы с юзером столкнулся с проблей. Django ругается на то, что переменная user является внешним...

Ошибка при создании .exe
import pyperclip from tkinter import* #получаем текст из буфера обмена def buferRU (): bufer = pyperclip.paste() ...

2
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
09.03.2018, 11:19  [ТС]
Ну и самое интересное)
Миниатюры
Ошибка при создании пользователя   Ошибка при создании пользователя   Ошибка при создании пользователя  

0
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
09.03.2018, 14:01  [ТС]
я вот по скринам не вижу никаких конфликтов с id. да и в параметрах отдаваемых на execute тоже все вроде бы нормально... или мне так только кажется?

Добавлено через 10 минут
ах, да) совсем забыл) python 3.5 + Django 2.0

Добавлено через 1 час 10 минут
Оказывается эта ошибка появляется только когда при создании пользователя указывается Stream в Profile пользователя. Если не задавать это поле, то создание пользователя проходит успешно....

Добавлено через 9 минут
О как! Убрал обработку сигналов из Profile.models.py и все заработало... Теперь сижу и думаю нафига я это вообще писал?

Добавлено через 1 час 9 минут
Итак,

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    # Этот сигнал неправильно закодин, при создании профайла для пользователя когда из админки указан объект Stream
    # то этот код по сути уберет значение поля stream так как создаст профайл только с атрибутом user, что в дальнейшем и 
    # вывалится в ошибку. Поэтому этот метод нужно вообще убрать так как есть сигнал ниже да и вообще создание 
    # объекта Profile происходит автоматом.
    if created:
        Profile.objects.create(user=instance)
 
 
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
    # Правда не все так просто, если при создании пользователя никакие поля Profile не трогать, а в объекте Profile
    # нет required полей, то объект Profile созда не будет. А этот код вывалит ошибку так как в поле Profile.user_id 
    # будет None вместо id пользователя. Тогда надо просто добавить заполнение Profile.user_id принудительно если 
    # сигнал создает пользователя
    if kwargs['created']:
        instance.profile.user_id = instance.id
    # вот и все)
    instance.profile.save()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.03.2018, 14:01
Помогаю со студенческими работами здесь

Ошибка при создании кнопки
Приветствую всех, прошу помощи в решении проблемы. Что я делаю не так? import tkinter as tk class CreateWindow(): def...

Ошибка при создании интерфейса
Здравствуйте можете сказать у меня не запускается программа просто открывается консоль,можете сказать открывается она у вас или нет? Если...

Ошибка при создании бота телеграм
При написании бота телеграм ошибка: 2020-01-28 22:20:48,643 (util.py:66 PollingThread) ERROR - TeleBot: &quot;ConnectTimeout...

Ошибка при создании телеграмм бота
PS C:\Users\Asus\Desktop\tg_bot&gt; python -m venv venv PS C:\Users\Asus\Desktop\tg_bot&gt; venv\Scripts\activate venv\Scripts\activate :...

Ошибка при создании слоя в keras
Здравствуйте, я изучаю библиотеку keras по примерам в данном примере:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru