Python 位于/admin/login/User的RelatedObjectsDoesNotExister没有密码

Python 位于/admin/login/User的RelatedObjectsDoesNotExister没有密码,python,django,Python,Django,我有另一个网站,我创建了没有这个问题,是我所知的最好的设置相同的方式 以下是用户应用程序中的my models.py: from django.db import models from django.utils import timezone from django.contrib.auth.models import User from users.choices import * from django.db.models.signals import post_save from dja

我有另一个网站,我创建了没有这个问题,是我所知的最好的设置相同的方式

以下是用户应用程序中的my models.py:

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from users.choices import *
from django.db.models.signals import post_save
from django.dispatch import receiver

from listings.models import University

# Create your models here.

class SCUser(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)

    first_name = models.CharField(max_length=50,blank=False,default='User')
    join_date = models.DateTimeField(default=timezone.now)
    university = models.ForeignKey(University,related_name='u_university',null=False,blank=False)

    def __str__(self):
        return self.user.username

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        SCUser.objects.create(user=instance)

@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
    instance.scuser.save()
以下是错误:

RelatedObjectDoesNotExist at /admin/login/
User has no scuser.
以下是回溯:

Internal Server Error: /admin/login/
Traceback (most recent call last):
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/contrib/admin/sites.py", line 393, in login
    return LoginView.as_view(**defaults)(request)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view
    return self.dispatch(request, *args, **kwargs)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/utils/decorators.py", line 67, in _wrapper
    return bound_func(*args, **kwargs)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/views/decorators/debug.py", line 76, in sensitive_post_parameters_wrapper
    return view(request, *args, **kwargs)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/utils/decorators.py", line 63, in bound_func
    return func.__get__(self, type(self))(*args2, **kwargs2)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/utils/decorators.py", line 67, in _wrapper
    return bound_func(*args, **kwargs)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/utils/decorators.py", line 63, in bound_func
    return func.__get__(self, type(self))(*args2, **kwargs2)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/utils/decorators.py", line 67, in _wrapper
    return bound_func(*args, **kwargs)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/utils/decorators.py", line 63, in bound_func
    return func.__get__(self, type(self))(*args2, **kwargs2)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/contrib/auth/views.py", line 90, in dispatch
    return super(LoginView, self).dispatch(request, *args, **kwargs)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/views/generic/base.py", line 88, in dispatch
    return handler(request, *args, **kwargs)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/views/generic/edit.py", line 183, in post
    return self.form_valid(form)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/contrib/auth/views.py", line 119, in form_valid
    auth_login(self.request, form.get_user())
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/contrib/auth/__init__.py", line 160, in login
    user_logged_in.send(sender=user.__class__, request=request, user=user)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/dispatch/dispatcher.py", line 193, in send
    for receiver in self._live_receivers(sender)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/dispatch/dispatcher.py", line 193, in <listcomp>
    for receiver in self._live_receivers(sender)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/contrib/auth/models.py", line 25, in update_last_login
    user.save(update_fields=['last_login'])
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/contrib/auth/base_user.py", line 80, in save
    super(AbstractBaseUser, self).save(*args, **kwargs)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/db/models/base.py", line 807, in save
    force_update=force_update, update_fields=update_fields)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/db/models/base.py", line 847, in save_base
    update_fields=update_fields, raw=raw, using=using,
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/dispatch/dispatcher.py", line 193, in send
    for receiver in self._live_receivers(sender)
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/dispatch/dispatcher.py", line 193, in <listcomp>
    for receiver in self._live_receivers(sender)
  File "/Users/garrettlove/Documents/Student-Cribz/Website/newsite/users/models.py", line 29, in save_user_profile
    instance.scuser.save()
  File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 407, in __get__
    self.related.get_accessor_name()
django.db.models.fields.related_descriptors.RelatedObjectDoesNotExist: User has no scuser.
内部服务器错误:/admin/login/
回溯(最近一次呼叫最后一次):
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/core/handlers/exception.py”,第41行,在内部
响应=获取响应(请求)
文件“/anaconda3/envs/dev/lib/python3.6/site-packages/django/core/handlers/base.py”,第187行,在“获取”响应中
response=self.process\u异常\u由\u中间件(e,请求)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/core/handlers/base.py”,第185行,在“获取”响应中
响应=包装的回调(请求,*回调参数,**回调参数)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/views/decorators/cache.py”,第57行,在_wrapped_view_func中
响应=查看功能(请求,*args,**kwargs)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/contrib/admin/sites.py”,第393行,登录
返回LoginView.as_视图(**默认值)(请求)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/views/generic/base.py”,第68行,在视图中
返回自调度(请求,*args,**kwargs)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/utils/decorators.py”,第67行,在
返回边界函数(*args,**kwargs)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/views/decorators/debug.py”,第76行,在敏感的后参数包装中
返回视图(请求、*args、**kwargs)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/utils/decorators.py”,第63行,在绑定函数中
返回函数获取(self,键入(self))(*args2,**kwargs2)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/utils/decorators.py”,第67行,在
返回边界函数(*args,**kwargs)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/utils/decorators.py”,第149行,在包装视图中
响应=查看功能(请求,*args,**kwargs)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/utils/decorators.py”,第63行,在绑定函数中
返回函数获取(self,键入(self))(*args2,**kwargs2)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/utils/decorators.py”,第67行,在
返回边界函数(*args,**kwargs)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/views/decorators/cache.py”,第57行,在_wrapped_view_func中
响应=查看功能(请求,*args,**kwargs)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/utils/decorators.py”,第63行,在绑定函数中
返回函数获取(self,键入(self))(*args2,**kwargs2)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/contrib/auth/views.py”,第90行,已发送
返回super(LoginView,self).分派(请求,*args,**kwargs)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/views/generic/base.py”,第88行,在分派中
返回处理程序(请求、*args、**kwargs)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/views/generic/edit.py”,第183行,在post中
返回self.form\u有效(form)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/contrib/auth/views.py”,第119行,格式为
身份验证登录(self.request,form.get\u user())
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/contrib/auth/_init__u;.py”,第160行,登录
用户\登录\发送(发送方=用户。\类\请求=请求,用户=用户)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/dispatch/dispatcher.py”,第193行,在send中
对于自身中的接收者。\u现场\u接收者(发送者)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/dispatch/dispatcher.py”,第193行,在
对于自身中的接收者。\u现场\u接收者(发送者)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/contrib/auth/models.py”,第25行,在更新\上次登录时
user.save(更新\u字段=['上次\u登录]]
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/contrib/auth/base_user.py”,第80行,保存
super(AbstractBaseUser,self).save(*args,**kwargs)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/db/models/base.py”,第807行,保存
强制更新=强制更新,更新字段=更新字段)
save_base中的文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/db/models/base.py”,第847行
更新\字段=更新\字段,原始=原始,使用=使用,
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/dispatch/dispatcher.py”,第193行,在send中
对于自身中的接收者。\u现场\u接收者(发送者)
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/dispatch/dispatcher.py”,第193行,在
对于自身中的接收者。\u现场\u接收者(发送者)
文件“/Users/garrettlove/Documents/Student Cribz/Website/newsite/Users/models.py”,第29行,保存用户配置文件
instance.scuser.save()
文件“/anaconda3/envs/dev/lib/python3.6/site packages/django/db/models/fields/related_descriptors.py”,第407行,在__
self.related.get\u访问器\u name()
django.db.models.fields.related_描述符.RelatedObjectDoesNotExist:用户没有密码。

我环顾四周,似乎找不到任何与此相关的内容,因为我正在创建新用户时的适当实例。如果您需要查看项目的任何其他部分,请告诉我。

听起来应用程序中已经有用户了。最简单的选择是使用
get\u或\u create()
更新这些用户

for user in User.objects.all():
UserProfile.objects.get_or_create(user=user)

您可以在shell中执行,在迁移中运行,或者删除数据库(如果在新开发中),然后从那里开始

如果站点是活动的呢?那么我只需键入
python
,然后输入这两行或其他内容?如果是活动的,则需要在迁移中执行,或者在shell中运行。你不应该在适当的时候遇到这个问题