【发布时间】:2019-06-05 17:04:59
【问题描述】:
我有以下型号:
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?
【问题讨论】:
-
数据库的设置方式可能存在问题。我刚刚在本地重新创建了您的项目,并且能够成功创建用户而没有此异常。哪个表单提交引发了异常?用户创建还是更新?
-
是
UserCreationForm和UserAdmin分别来自django.contrib.auth.forms和django.contrib.auth.admin,还是那些自定义版本? -
@jimijimjim 我刚刚更新了问题以包含一些附加信息;创建用户失败
标签: python django django-models django-admin