如标题所示,我在 Django 3.1(最新版本)中没有收到 RelatedObjectDoesNotExist 错误,我没有使用信号。我使用 (python manage.py createsuperuser) 命令创建了一个超级用户,正如预期的那样,它不会创建配置文件。
模型.py'''
class User(AbstractUser):
pass
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
birth_date = models.DateField(null=True, blank=True)
'''
视图.py
'''
class RegisterView(View):
def get(self, request):
form = UserSignUpForm()
# print(form)
return render(request, 'users/register.html', {'form': form})
def post(self, request):
form = UserSignUpForm(request.POST)
if form.is_valid():
form.save()
username = request.POST.get('username')
Profile.objects.create(user=User.objects.get(username=username))
return redirect('users:login-page')
return render(request, 'users/register.html', {'form': form})
'''
当我使用 createsuperuser 命令时,没有创建配置文件,所以如果我尝试登录,我希望得到 RelatedObjectDoesNotExist。但我没有!这是为什么?另外,如果我手动编辑数据库并删除配置文件并保留用户,则用户仍然可以正常工作,并且没有任何 RelatedObjectDoesNotExist 错误!这是 Django 3.1 改变的东西吗?
谢谢你