我尝试为我的页面构建一个登录功能.要编辑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) 我正在尝试使用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
我正在尝试将Django
项目从迁移Python 2.7/Django 1.11
到Python 3.7/Django 2.1
。
我对一个问题有些困惑。
Django 2.1
将models.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
?在这种情况下我该怎么办?
我想根据类别模型动态创建菜单的链接。我使用 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) 我开始在 django 中创建登录模块。登录模块正常,但注销时遇到问题。当我单击“注销”时 - 我们看到“错误 -ERR_TOO_MANY_REDIRECTS”
\n\n该文件中的某些内容可能不正确:account/urls.py
\n\nfrom 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) 如何从中间件重定向网址?
无限循环问题。
如果注册尚未完成,我打算将用户重定向到客户端注册 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) 在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 '),]
这是我要编写的代码。 …
我正在尝试为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,)
会导致自动完成取消并向我显示带有自定义文本的下拉列表。
I\xc2\xb4m 尝试使用 Django 登录没有密码的用户,到目前为止我已经创建了这个:
\n无密码.py
\nclass 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
\nfrom .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 收到此错误:
\nTraceback (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) 我正在为我正在开发的 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) django-2.1 ×10
django ×8
python ×6
python-3.x ×4
django-admin ×1
django-urls ×1
django-views ×1
html ×1