我正在使用django allauth进行用户注册和登录,但我只有一个称为“单击完成”的步骤,这应该是完成他们的配置文件时,用户注册。但我有以下错误。 首先,我已经试过了
模型.py
class CustomUser(AbstractUser):
def __str__(self):
return self.email
class Profile(models.Model):
user = models.OneToOneField('users.CustomUser', on_delete=models.CASCADE)
def __str__(self):
return self.user.email
表单.py
^{pr2}$视图.py
def profile(request):
if request.method == 'POST':
form = ProfileForm(request.POST)
if form.is_valid():
form.save()
redirect('dashboard')
else:
form = ProfileForm()
return render(request, 'users/profile.html', {'form':form})
我得到了这个错误
Traceback (most recent call last):
File "C:\Users\Zako5\.virtualenvs\inventory_project-V0PloAkR\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\Zako5\.virtualenvs\inventory_project-V0PloAkR\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\Zako5\.virtualenvs\inventory_project-V0PloAkR\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Zako5\inventory_project\users\views.py", line 13, in profile
form.save()
File "C:\Users\Zako5\.virtualenvs\inventory_project-V0PloAkR\lib\site-packages\django\forms\models.py", line 458, in save
self.instance.save()
File "C:\Users\Zako5\.virtualenvs\inventory_project-V0PloAkR\lib\site-packages\django\db\backends\utils.py", line 99, in execute
return super().execute(sql, params)
File "C:\Users\Zako5\.virtualenvs\inventory_project-V0PloAkR\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\Zako5\.virtualenvs\inventory_project-V0PloAkR\lib\site-packages\django\db\backends\sqlite3\base.py", line 383, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.IntegrityError: NOT NULL constraint failed: users_profile.user_id
[06/Apr/2019 11:50:13] "POST /account/profile HTTP/1.1" 500 150456
我已经找到了一些答案,但没有一个对我的案子有效。 任何帮助都将不胜感激!在
您需要在Profile对象中添加
user
字段的值。在为此,在保存配置文件之前,可以从
request.user
附加用户。使用form.save(commit=False)
将返回尚未保存在数据库中的概要文件实例,然后将用户添加到该概要文件实例中。在例如:
相关问题 更多 >
编程相关推荐