AttributeError: модуль 'django.contrib.auth.views' не имеет атрибута 'login'

3

Я получил ошибку в моей структуре django rest, я запускаю ее на ОС Windows 10. это вся ошибка:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "c:\django\django\django\core\management\__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "c:\django\django\django\core\management\__init__.py", line 365, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "c:\django\django\django\core\management\base.py", line 288, in run_from_argv
    self.execute(*args, **cmd_options)
  File "c:\django\django\django\core\management\base.py", line 332, in execute
    self.check()
  File "c:\django\django\django\core\management\base.py", line 364, in check
    include_deployment_checks=include_deployment_checks,
  File "c:\django\django\django\core\management\commands\migrate.py", line 58, in _run_checks
    issues.extend(super()._run_checks(**kwargs))
  File "c:\django\django\django\core\management\base.py", line 351, in _run_checks
    return checks.run_checks(**kwargs)
  File "c:\django\django\django\core\checks\registry.py", line 73, in run_checks
    new_errors = check(app_configs=app_configs)
  File "c:\django\django\django\core\checks\urls.py", line 13, in check_url_config
    return check_resolver(resolver)
  File "c:\django\django\django\core\checks\urls.py", line 23, in check_resolver
    return check_method()
  File "c:\django\django\django\urls\resolvers.py", line 385, in check
    for pattern in self.url_patterns:
  File "c:\django\django\django\utils\functional.py", line 37, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "c:\django\django\django\urls\resolvers.py", line 524, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "c:\django\django\django\utils\functional.py", line 37, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "c:\django\django\django\urls\resolvers.py", line 517, in urlconf_module
    return import_module(self.urlconf_name)
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\django\travbudserver\travbudserver\urls.py", line 41, in <module>
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
  File "c:\django\django\django\urls\conf.py", line 34, in include
    urlconf_module = import_module(urlconf_module)
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\rest_framework\urls.py", line 24, in <module>
    url(r'^login/$', views.login, template_name, name='login'),
AttributeError: module 'django.contrib.auth.views' has no attribute 'login'

Это мой url.py

from django.conf.urls import include, url
from django.contrib import admin
from django.urls import path
from rest_framework import routers, serializers, viewsets
from polls.models import Question, Choice

# Serializers define the API representation.
class QuestionSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Question
        fields = ('question_text', 'pub_date')

# ViewSets define the view behavior.
class QuestionViewSet(viewsets.ModelViewSet):
    queryset = Question.objects.all()
    serializer_class = QuestionSerializer

# Routers provide an easy way of automatically determining the URL conf.
router = routers.DefaultRouter()
router.register(r'question', QuestionViewSet)

urlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

кто-нибудь имеет представление о моей ситуации? заранее спасибо...

Теги:
django-rest-framework

2 ответа

4

В настоящее время вы определяете URL-адрес входа:

url(r'^login/$', views.login, template_name, name='login'),

В Django 2.1 эта устаревшая функциональность была удалена.

Чтобы устранить проблему, вы можете изменить строку следующим образом:

url(r'^login/$', views.LoginView.as_view(template_name=template_name), name='login'),

Подробнее см. Документацию по просмотрам подлинности.

1

Вы используете невыпущенную главную ветвь Django, которая удалила старую функцию входа в систему на основе функций. Вы должны использовать выпущенную версию 1.11, где они все еще присутствуют (но устарели).

Последний мастер DRF удалил эту ссылку, но вы все равно должны придерживаться выпущенных версий.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню