为什么站点匹配查询不存在?

2024-09-30 20:27:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做jwt认证。我正在使用django rest auth包中的一些代码进行注册,注册端点和管理区域都有这个问题。我知道很多人在我面前问过这个问题,但我不知道为什么这个解决方案在我的情况下不起作用。你知道吗

我在贝壳里试过这个:

>>> from django.contrib.sites.models import Site
>>> site = Site()
>>> site.domain = 'answerly.com'
>>> site.name = 'answerly.com'
>>> site.save()

我的设置:

...
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # local apps
    'pages',
    'accounts',
    # third party packages
    'rest_framework',
    'rest_framework.authtoken',
    'rest_auth',
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'rest_auth.registration',
]
...
REST_USE_JWT = True
...

网址:

from django.contrib import admin
from django.urls import path, include
from rest_auth.registration.views import RegisterView
# from rest_auth.views import LoginView, LogoutView


urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('pages.api.urls')),
    path('accounts/registration/', RegisterView.as_view(), name='register'), 
    # path('rest-auth/registration/', include('rest_auth.registration.urls'))  
]

我有一个共同的解决方案:

Traceback (most recent call last):
File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django
/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 383, in execute
    return Database.Cursor.execute(self, query, params)
sqlite3.IntegrityError: UNIQUE constraint failed: django_site.domain

上述异常是以下异常的直接原因:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/models/base.py", line 741, in save
    force_update=force_update, update_fields=update_fields)
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/models/base.py", line 779, in save_base
    force_update, using, update_fields,
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/models/base.py", line 870, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/models/base.py", line 908, in _do_insert
    using=using, raw=raw)
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/models/query.py", line 1186, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1335, in execute_sql
    cursor.execute(sql, params)
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 99, in execute
    return super().execute(sql, params)
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 67, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/home/valentyn/Dev/Answerly/venv/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 383, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.IntegrityError: UNIQUE constraint failed: django_site.domain

Tags: djangoinpydevhomeexecutedbvenv
1条回答
网友
1楼 · 发布于 2024-09-30 20:27:33

我正试图更好地理解正在发生的事情,所以请容忍我,因为我有几个问题:

  1. 你移植了“python”吗管理.py迁移“添加后”rest_框架.authtoken“,”到您安装的应用程序?参考:https://django-rest-auth.readthedocs.io/en/latest/installation.html#

  2. 你是否在你的网站中添加了“SITE\u ID=1”设置.py?请参阅:https://django-rest-auth.readthedocs.io/en/latest/installation.html#registration-optional

相关问题 更多 >