Python 异常值:无此表:空缺\u列表\u advuser
我为注册添加了用户类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 我所做的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
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 © 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中的我的类