我正在使用react,redux和django-rest-framework设置Django应用程序。在Django中添加“客户”模型后,访问管理界面时出现ValueError。
即使通过删除以下行从管理界面中删除了所有模型之后,错误仍然会返回:
admin.site.register(model)
。
即使我刷新数据库,错误仍然不断返回。
我使用带有knox令牌的django用户模型登录django应用程序。
这是Pipenv中的本地Django安装。
错误:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/
Django Version: 2.1.5
Python Version: 3.5.2
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'leads',
'rest_framework',
'frontend',
'knox',
'accounts',
'customer']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
34. response = get_response(request)
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/contrib/admin/sites.py" in wrapper
241. return self.admin_view(view, cacheable)(*args, **kwargs)
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/contrib/admin/sites.py" in inner
213. if request.path == reverse('admin:logout', current_app=self.name):
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/urls/base.py" in reverse
58. app_list = resolver.app_dict[ns]
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/urls/resolvers.py" in app_dict
477. self._populate()
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/urls/resolvers.py" in _populate
430. url_pattern._populate()
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/urls/resolvers.py" in _populate
419. bits = normalize(url_pattern.pattern.regex.pattern)
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/utils/regex_helper.py" in normalize
153. count, ch = get_quantifier(ch, pattern_iter)
File "/home/[NAME]/.local/share/virtualenvs/lead_manager-2CdCcx2v/lib/python3.5/site-packages/django/utils/regex_helper.py" in get_quantifier
265. return int(values[0]), ch
Exception Type: ValueError at /admin/
Exception Value: invalid literal for int() with base 10: 'id'
Settings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'leads',
'rest_framework',
'frontend',
'knox',
'accounts',
'customer',
]
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': ('knox.auth.TokenAuthentication',)
}
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'leadmanager.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
型号:
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.")
class CustomerManager(models.Manager):
def create_customer(self, username, password, first_name, last_name, email, phone, country, city, zip, address):
customer = self.create(username=username, password=password, first_name=first_name, last_name=last_name, email=email, phone=phone, country=country, city=city, zip=zip, address=address)
return customer
# Create your models here.
class Customer(models.Model):
username = models.CharField(max_length=50)
password = models.CharField(max_length=256)
first_name = models.CharField(max_length=75)
last_name = models.CharField(max_length=75)
email = models.EmailField()
phone = models.CharField(validators=[phone_regex], max_length=17, blank=True)
country = CountryField()
city = models.CharField(max_length=50, default='City')
zip = models.CharField(max_length=10)
address = models.CharField(max_length=100)
status = models.SmallIntegerField(choices=STATUS_CHOICES, default=1)
objects = CustomerManager()
def verify_password(self, raw_password):
return pbkdf2_sha256.verify(raw_password, self.password)
def __str__(self):
return self.first_name + " " + self.last_name
我的预期结果是没有错误地访问Django Admin界面。 我希望我已提供解决此问题所需的所有信息。
编辑: urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('frontend.urls')),
path('', include('leads.urls')),
path('', include('accounts.urls')),
path('', include('customer.urls')),
]
答案 0 :(得分:0)
经过数小时的阅读和故障排除,我发现了错误。错误不在管理员,模型或api中。它在我的帐户应用程序的urls.py中。
这是我使用的代码:
path('api/auth/user/{id}', GetUserAPI.as_view()),
代替
path('api/auth/user/<id>', GetUserAPI.as_view()),
感谢您帮助解决给定的错误!