Python 异常值:无此表:空缺\u列表\u advuser

Python 异常值:无此表:空缺\u列表\u advuser,python,django,django-models,Python,Django,Django Models,我为注册添加了用户类AdvUser 当我想要登录、注册或创建超级用户时,我收到错误: 异常值:无此表:空缺\u列表\u advuser 文件“/home/alex/dev/python/django/junjob/myvenv/lib/python3.5/site packages/django/db/backends/sqlite3/base.py”,执行中第305行 返回Database.Cursor.execute(self、query、params) django.db.utils.Op

我为注册添加了用户类AdvUser 当我想要登录、注册或创建超级用户时,我收到错误:

异常值:无此表:空缺\u列表\u advuser

文件“/home/alex/dev/python/django/junjob/myvenv/lib/python3.5/site packages/django/db/backends/sqlite3/base.py”,执行中第305行 返回Database.Cursor.execute(self、query、params) django.db.utils.OperationalError:没有这样的表:空缺\u列表\u advuser

我所做的

  • 选中的
    AUTH_USER_MODEL='空缺列表.AdvUser'#

    我的代码:

    型号.py

    from django.conf import settings
    from django.db import models
    from django.utils import timezone
    from django.contrib.auth.models import AbstractUser
    from django.db import models
    from django.dispatch import Signal
    
    from .utilities import send_activation_notification
    
    
    class Company(models.Model):
        name = models.CharField(max_length=200)
        about = models.TextField()
    
        def __str__(self):
            return self.name
    
    
    class Vacancy(models.Model):
        company_key = models.ForeignKey(Company, on_delete=models.CASCADE)
        title = models.CharField(max_length=200)
        salary = models.CharField(max_length=200, default='40.000')
        text = models.TextField(default="The text about vacancy")
        city = models.CharField(max_length=200, default='Москва')
        date_str = models.CharField(max_length=50, default='12 сентября')
    
        created_date = models.DateTimeField(default=timezone.now)
        published_date = models.DateTimeField(blank=True, null=True)
    
        def publish(self):
            self.published_date = timezone.now()
            self.save()
    
        def __str__(self):
            return self.title
    
    
    class AdvUser(AbstractUser):
        """ Model of user for registration """
        is_activated = models.BooleanField(default=True, db_index=True, verbose_name='Прошёл активацию?')
        send_messages = models.BooleanField(default=True, verbose_name='Слать оповещёния о новых комментариях?')
    
        class Meta(AbstractUser.Meta):
            pass
    
    
    user_registrated = Signal(providing_args=['instance'])
    
    
    def user_registrated_dispatcher(sender, **kwargs):
        send_activation_notification(kwargs['instance'])
    
    
    user_registrated.connect(user_registrated_dispatcher)
    
    urlpatterns = [
        path('', HomePageView.as_view(), name='vacancy_list'),
        path('search/', SearchResultsView.as_view(), name='search_results'),
        path('vacancy/<int:pk>/', views.vacancy_detail, name='vacancy_detail'),
    
        path('accounts/login/', BBLoginView.as_view(), name='login'),
        path('accounts/profile/', profile, name='profile'),
        path('accounts/logout/', BBLogoutView.as_view(), name='logout'),
    
        path('accounts/register/done', RegisterDoneView.as_view(), name='register_done'),
        path('accounts/register/', RegisterUserView.as_view(), name='register'),
        path('accounts/register/activate/<str:sign>/', user_activate, name='register_activate'),
        # path('', views.post_list, name='post_list'),
    ]
    
    ''' Registration views '''
    
    class BBLoginView(LoginView):
        template_name = 'vacancy_list/login.html'
    
    class BBLogoutView(LoginRequiredMixin, LogoutView):
        template_name = 'vacancy_list/logout.html'
    
    @login_required
    def profile(request):
        return render(request, 'vacancy_list/profile.html')
    
    class RegisterUserView(CreateView):
        model = AdvUser
        template_name = 'vacancy_list/register_user.html'
        form_class = RegisterUserForm
        success_url = reverse_lazy('register_done')
    
    class RegisterDoneView(TemplateView):
        template_name = "vacancy_list/register_done.html"
    
    
    def user_activate(request, sign):
        try:
            username = signer.unsign(sign)
        except:
            return render(request, 'vacancy_list/bad_signature.html')
        user = get_object_or_404(AdvUser, username=username)
        if user.is_activated:
            template = 'vacancy_list/user_is_activated.html'
        else:
            template = 'vacancy_list/activation_done.html'
            user.is_active = True
            user.is_activated = True
            user.save()
        return render(request, template)
    
    url.py

    from django.conf import settings
    from django.db import models
    from django.utils import timezone
    from django.contrib.auth.models import AbstractUser
    from django.db import models
    from django.dispatch import Signal
    
    from .utilities import send_activation_notification
    
    
    class Company(models.Model):
        name = models.CharField(max_length=200)
        about = models.TextField()
    
        def __str__(self):
            return self.name
    
    
    class Vacancy(models.Model):
        company_key = models.ForeignKey(Company, on_delete=models.CASCADE)
        title = models.CharField(max_length=200)
        salary = models.CharField(max_length=200, default='40.000')
        text = models.TextField(default="The text about vacancy")
        city = models.CharField(max_length=200, default='Москва')
        date_str = models.CharField(max_length=50, default='12 сентября')
    
        created_date = models.DateTimeField(default=timezone.now)
        published_date = models.DateTimeField(blank=True, null=True)
    
        def publish(self):
            self.published_date = timezone.now()
            self.save()
    
        def __str__(self):
            return self.title
    
    
    class AdvUser(AbstractUser):
        """ Model of user for registration """
        is_activated = models.BooleanField(default=True, db_index=True, verbose_name='Прошёл активацию?')
        send_messages = models.BooleanField(default=True, verbose_name='Слать оповещёния о новых комментариях?')
    
        class Meta(AbstractUser.Meta):
            pass
    
    
    user_registrated = Signal(providing_args=['instance'])
    
    
    def user_registrated_dispatcher(sender, **kwargs):
        send_activation_notification(kwargs['instance'])
    
    
    user_registrated.connect(user_registrated_dispatcher)
    
    urlpatterns = [
        path('', HomePageView.as_view(), name='vacancy_list'),
        path('search/', SearchResultsView.as_view(), name='search_results'),
        path('vacancy/<int:pk>/', views.vacancy_detail, name='vacancy_detail'),
    
        path('accounts/login/', BBLoginView.as_view(), name='login'),
        path('accounts/profile/', profile, name='profile'),
        path('accounts/logout/', BBLogoutView.as_view(), name='logout'),
    
        path('accounts/register/done', RegisterDoneView.as_view(), name='register_done'),
        path('accounts/register/', RegisterUserView.as_view(), name='register'),
        path('accounts/register/activate/<str:sign>/', user_activate, name='register_activate'),
        # path('', views.post_list, name='post_list'),
    ]
    
    ''' Registration views '''
    
    class BBLoginView(LoginView):
        template_name = 'vacancy_list/login.html'
    
    class BBLogoutView(LoginRequiredMixin, LogoutView):
        template_name = 'vacancy_list/logout.html'
    
    @login_required
    def profile(request):
        return render(request, 'vacancy_list/profile.html')
    
    class RegisterUserView(CreateView):
        model = AdvUser
        template_name = 'vacancy_list/register_user.html'
        form_class = RegisterUserForm
        success_url = reverse_lazy('register_done')
    
    class RegisterDoneView(TemplateView):
        template_name = "vacancy_list/register_done.html"
    
    
    def user_activate(request, sign):
        try:
            username = signer.unsign(sign)
        except:
            return render(request, 'vacancy_list/bad_signature.html')
        user = get_object_or_404(AdvUser, username=username)
        if user.is_activated:
            template = 'vacancy_list/user_is_activated.html'
        else:
            template = 'vacancy_list/activation_done.html'
            user.is_active = True
            user.is_activated = True
            user.save()
        return render(request, template)
    
    base.html-->注册链接

    {% load static %}
    <html>
        <head>
            <title>My blog</title>
            <!-- Add Bootstrap4 -->
            <link href="{% static 'vendor/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
    
    
            <style>
                html,
                body {
                  height: 100%;
                }
    
                #page-content {
                  flex: 1 0 auto;
                }
    
                #sticky-footer {
                  flex-shrink: none;
                }
            </style>
        </head>
    
        <body class="d-flex flex-column">
            <div id="page-content">
                    <!-- Navigation -->
              <nav class="navbar navbar-expand-lg navbar-dark bg-dark static-top">
                <div class="container">
                  <a class="navbar-brand" href="/">JunJob</a>
                  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                  </button>
                  <div class="collapse navbar-collapse" id="navbarResponsive">
                    <ul class="navbar-nav ml-auto">
                      <li class="nav-item active">
                        <a class="nav-link" href="#">Home
                          <span class="sr-only">(current)</span>
                        </a>
                      </li>
                      {% if user.is_authenticated %}
                        <li class="nav-item active">
                          <a class="nav-link" href=""><font color="red">{{ user }}</font>
                            <span class="sr-only">(current)</span>
                          </a>
                        </li>
    
                        <li class="nav-item active">
                        <a class="nav-link" href="{% url 'logout' %}">Logout
                          <span class="sr-only">(current)</span>
                        </a>
                      </li>
                      {% else %}
                      <li class="nav-item active">
                        <a class="nav-link" href="{% url 'login' %}">Login
                          <span class="sr-only">(current)</span>
                        </a>
                      </li>
                      <li class="nav-item active">
                        <a class="nav-link" href="{% url 'register' %}">Register
                          <span class="sr-only">(current)</span>
                        </a>
                      </li>
                      {% endif %}
                    </ul>
                  </div>
                </div>
              </nav>
                {% block content %}
                {% endblock %}
            </div>
    
      <footer class="py-5 bg-dark">
        <div class="container">
          <p class="m-0 text-center text-white">Copyright &copy; Your Website 2019</p>
        </div>
    
      </footer>
    
      <!-- Bootstrap core JavaScript -->
      <script src="{% static 'vendor/jquery/jquery.slim.min.js' %}"></script>
      <script src="{% static 'vendor/bootstrap/js/bootstrap.bundle.min.js' %}"></script>
    
        </body>
    </html>
    
    {%load static%}
    我的博客
    html,
    身体{
    身高:100%;
    }
    #页面内容{
    弹性:10自动;
    }
    #粘脚{
    弹性收缩:无;
    }
    
    • {%if user.u经过身份验证%}
    • {%else%}
    • {%endif%}
    {%block content%} {%endblock%}

    版权和副本;您的网站2019

    然后运行迁移脚本

    python manage.py migrate 
    

    希望这有帮助

    您可能需要降级您的SQLite版本。我遇到了一个常见问题。

    谢谢,但我有错误1。我删除迁移0001_initial.py和pycache 2。python manage.py makemigrations 3。python manage.py migrate——伪空缺列表零4。python manage.py在我拥有的最后一个命令django.db.utils.OperationalError之后迁移:表“空缺列表公司”已经存在“公司”--是models.py中的我的类