У меня есть следующая модель:
from django.db import models
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
last_password_reset = models.DateTimeField(auto_now_add=True)
needs_password_reset = models.BooleanField(default=True)
image_url = models.URLField(max_length=500, default=None, null=True, blank=True)
Я пытаюсь встроить это в админа.У меня есть следующее:
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.forms import UserCreationForm
class UserProfileInline(admin.StackedInline):
"""User profile inline."""
model = Profile
can_delete = False
verbose_name_plural = "Profile"
class CustomUserCreationForm(UserCreationForm):
"""Create user form."""
class Meta:
model = User
fields = ("username", "first_name", "last_name", "email")
class CustomUserAdmin(UserAdmin):
"""Custom user admin."""
add_form = CustomUserCreationForm
inlines = (UserProfileInline,)
admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)
Это работает нормально до определенного момента;когда я иду, чтобы создать пользователя, я вижу встроенную информацию профиля.Однако, когда я пытаюсь отправить форму, я получаю следующую ошибку (/admin/auth/user/add/
):
psycopg2.errors.NotNullViolation: null value in column "user_id" violates not-null constraint
Почему поле user_id
не заполняется во встроенной форме?Как я могу установить этот атрибут для id
пользователя, созданного формой?