标签: django-2.1

Django无法从django.contrib.auth.views导入登录

我尝试为我的页面构建一个登录功能.要编辑urls.py,请继续打印:

无法从'django.contrib.auth.views'导入名称'login'

我该怎么处理这个问题?

from django.contrib.auth.views import login
from django.urls import path
from . import views
app_name = "users"
urlpatterns = [
    path("login/", login, {"template_name": "users/login.html"}, 
name="login"),
]
Run Code Online (Sandbox Code Playgroud)

python django django-2.1

13
推荐指数
1
解决办法
1万
查看次数

使用迁移为Django中的模型字段添加索引

我正在尝试使用Field.db_index具有迁移的应用程序在模型字段上添加索引.看看Django的文档我需要做的就是设置db_index=True:

class Person(models.Model):
    first_name = models.CharField()
    last_name = models.CharField(db_index=True)
Run Code Online (Sandbox Code Playgroud)

然后我首先尝试了新的Django迁移:

./manage.py makemigrations app-name
Run Code Online (Sandbox Code Playgroud)

但是迁移似乎没有注意到更改,也没有添加用于创建索引的sql命令.所以我试着django-admin.py按照这里的解释:

django-admin.py sqlindexes app-name
Run Code Online (Sandbox Code Playgroud)

但是,这也不会打印sql命令,它会退出并出现以下错误:

CommandError: App 'app-name' has migrations. Only the sqlmigrate and sqlflush commands can be used when an app has migrations.
Run Code Online (Sandbox Code Playgroud)

django django-models django-admin django-migrations django-2.1

10
推荐指数
3
解决办法
4980
查看次数

在Django中修改旧的迁移文件是否正确?

我正在尝试将Django项目从迁移Python 2.7/Django 1.11Python 3.7/Django 2.1

我对一个问题有些困惑。

Django 2.1models.ForeignKey(...)项目中的所有代码字符串标记为错误:

TypeError: __init__() missing 1 required positional argument: 'on_delete'
Run Code Online (Sandbox Code Playgroud)

这是因为因为Django 2.x,所以'on_delete'方法是ForeignKey字段的必需项(尝试在带有条目的子表之后添加父表时,获取TypeError:__init __()缺少1个必需的位置参数:'on_delete'

如果您将阅读这篇文章,则解决方案非常简单,您只需添加以下'on_delete'选项之一,例如: models.ForeignKey(..., on_delete=models.CASCADE,)

但是,Django不仅抱怨实际'models.py'文件,而且抱怨所有(!)迁移,其中包括"ForeignKey"添加或更改的字段。

所以我的问题是,在中修改旧的迁移文件是否安全Django?在这种情况下我该怎么办?

python django python-3.x django-2.1

9
推荐指数
2
解决办法
805
查看次数

如何使用 Django 管理动态菜单?

我想根据类别模型动态创建菜单的链接。我使用 DetailView 和 ListView 创建单个类别的列表和详细信息页面,并且运行良好。

现在,每次用户添加新类别时,我希望在 base.html 中看到“下拉”菜单中的新链接。

这是base.html

{% load static %}

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

    <title>{% block head_title %}Test{% endblock head_title %}</title>
  </head>
  <body>


    <nav class="navbar navbar-expand-lg navbar-light bg-light">
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>

      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item active">
            <a class="nav-link" href="/">Home <span …
Run Code Online (Sandbox Code Playgroud)

html django django-templates django-views django-2.1

7
推荐指数
1
解决办法
9475
查看次数

ERR_TOO_MANY_REDIRECTS django 2.1 的问题

我开始在 django 中创建登录模块。登录模块正常,但注销时遇到问题。当我单击“注销”时 - 我们看到“错误 -ERR_TOO_MANY_REDIRECTS”

\n\n

该文件中的某些内容可能不正确:account/urls.py

\n\n
from django.conf.urls import url\nfrom django.urls import path\nfrom django.contrib.auth import views as auth_views\nfrom . import views\n\napp_name = \'account\'\n\nurlpatterns = [\n    path(\'\', auth_views.LoginView.as_view(template_name=\'account/login.html\'), name=\'login\'),\n    path(\'logout/\', auth_views.LogoutView.as_view(template_name=\'registration/logout.html\'), name=\'logout\'),\n    path(\'logout-then-login/\', auth_views.logout_then_login, name=\'logout_then_login\'),\n    path(\'dashboard/\', views.dashboard, name=\'dashboard\'),\n
Run Code Online (Sandbox Code Playgroud)\n\n

基本.html

\n\n
<body>\n  <div id="header">\n  {% if request.user.is_authenticated %}\n    <ul class="menu">\n      <li {% if section == "dashboard" %} class="selected"{% endif %}>\n        <a href="{% url "account:dashboard" %}">Panel g\xc5\x82\xc3\xb3wny</a>\n      </li>\n      <li {% if section == "images" %} class="selected"{% endif %}>\n        <a …
Run Code Online (Sandbox Code Playgroud)

python django python-3.x django-2.1

7
推荐指数
1
解决办法
7252
查看次数

如何从 Django 中的中间件重定向 url?

如何从中间件重定向网址?

无限循环问题。

如果注册尚未完成,我打算将用户重定向到客户端注册 url。

def check_user_active(get_response):
    def middleware(request):
        response = get_response(request)

        try:
            print(Cliente.objects.get(usuario_id=request.user.id))
        except Cliente.DoesNotExist:
            return redirect('confirm')


        return response
    return middleware
Run Code Online (Sandbox Code Playgroud)

python django python-3.x django-2.1

6
推荐指数
1
解决办法
4564
查看次数

django2中带有router.urls的名称空间

在django2.1.5和DRF 3.9.1中,我试图添加不能使用的router.urls命名空间。

path('api/v2/', include(router.urls, namespace="v2"))
Run Code Online (Sandbox Code Playgroud)

我的终端中的错误是

“在include()中指定名称空间而不提供app_name'django.core.exceptions.ImproperlyConfigured:不支持在include()中指定名称空间而不提供app_name。在包含的模块中设置app_name属性,或传递2包含模式列表和app_name的元组”

我为命名空间设置app_name时,找不到任何合适的解决方案。如何在router.urls上使用名称空间,或者在Django 2版本中无法使用它?

尝试添加app_name,但不能解决我的问题

这是我的代码。

config.urls.py

from django.urls import path, include
from django.contrib import admin

from rest_framework import routers

from project.courses import views

router = routers.SimpleRouter()
router.register(r'courses', views.CourseViewSet)
router.register(r'reviews', views.ReviewViewSet)

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api-auth/', include('rest_framework.urls')),
    path('api/v1/courses/', include('project.courses.urls', namespace='courses')),
    path('api/v2/', include(router.urls, namespace="v2")),
]
Run Code Online (Sandbox Code Playgroud)

courses.urls.py

from django.urls import path
from . import views

app_name = 'project.courses'
urlpatterns = [
    path('', views.ListCreateCourse.as_view(), name='course_list'),
    path('<int:pk>', views.RetrieveUpdateDestroyCourse.as_view(), 
Run Code Online (Sandbox Code Playgroud)

name ='course_detail'),path('/ reviews /',views.ListCreateReview.as_view(),name ='review_list'),path('/ reviews /',views.RetrieveUpdateDestroyReview.as_view(),name ='review_detail '),]

这是我要编写的代码。 …

django-urls django-rest-framework django-2.1

6
推荐指数
1
解决办法
502
查看次数

更改 Django autocomplete_fields 标签

我正在尝试为autocomplete_fields.

到目前为止,对于下拉列表,人们会使用

...
class CustomDisplay(forms.ModelChoiceField):
    def label_from_instance(self, obj):
        return "Some custom text: {}".format(obj.name)
...
somethings = CustomDisplay(queryset=Something.object.all())
...
Run Code Online (Sandbox Code Playgroud)

但是使用它autocomplete_fields = (somethings,)会导致自动完成取消并向我显示带有自定义文本的下拉列表。

python django django-2.1

6
推荐指数
1
解决办法
1367
查看次数

TemplateResponseMixin 需要“template_name”的定义或“get_template_names()”的实现 - Django 2.1

I\xc2\xb4m 尝试使用 Django 登录没有密码的用户,到目前为止我已经创建了这个:

\n

无密码.py

\n
class PasswordlessAuthBackend(ModelBackend):\n   \n    def authenticate(self, username=None):\n        try:\n            return User.objects.get(username=username)\n        except User.DoesNotExist:\n            return None\n\n    def get_user(self, user_id):\n        try:\n            return User.objects.get(pk=user_id)\n        except User.DoesNotExist:\n            return None\n
Run Code Online (Sandbox Code Playgroud)\n

视图.py

\n
from .Nopassword import PasswordlessAuthBackend\nuser = User()\np = PasswordlessAuthBackend()\nuser.username = p.get_user(user_id=None)\nuser = p.authenticate(username=user.username)\n\n\ndef home(request):\n    login(request, user)\n
Run Code Online (Sandbox Code Playgroud)\n

问题是,当我运行 web 应用程序时,我\xc2\xb4m 收到此错误:

\n
Traceback (most recent call last):\n  File "/home/bohosul02/.virtualenvs/myproject/lib/python3.6/site-packages/django/core/handlers/exception.py", line 35, in inner\n    response = get_response(request)\n  File "/home/bohosul02/.virtualenvs/myproject/lib/python3.6/site-packages/django/core/handlers/base.py", line 128, in _get_response\n    response = self.process_exception_by_middleware(e, request)\n  File "/home/bohosul02/.virtualenvs/myproject/lib/python3.6/site-packages/django/core/handlers/base.py", …
Run Code Online (Sandbox Code Playgroud)

python authentication django-2.1

5
推荐指数
1
解决办法
6758
查看次数

NoReverseMatch 位于 /accounts/password_reset/

我正在为我正在开发的 Django 项目进行身份验证。由于某些原因,我收到错误“Reverse for 'password_reset_done' not found. 'password_reset_done' is not a valid view function or pattern name.我将所有身份验证都放在accounts应用程序中”。

这是基本文件的内容urls.py

from django.contrib import admin
from django.urls import path, include
from accounts import urls as accounts_urls
from core import urls as core_urls
from core import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.home, name='home'),
    path('accounts/', include(accounts_urls, namespace='accounts')),
    path('core/', include(core_urls, namespace='core')),
]
Run Code Online (Sandbox Code Playgroud)

这是文件的内容urls.py(在帐户应用程序中):

from django.urls import path, reverse_lazy
from django.contrib.auth import views as auth_views
from . …
Run Code Online (Sandbox Code Playgroud)

authentication django python-3.x django-2.1

4
推荐指数
1
解决办法
2450
查看次数