标签: django-urls

不支持在 include() 中指定命名空间而不提供 app_name

我收到这些错误

不支持在 include() 中指定命名空间而不提供 app_name。在包含的模块中设置 app_name 属性,或者传递包含模式列表和 app_name 的 2 元组。

我的代码如下所示

项目名称.urls

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('learning.urls',namespace='learning')),
  ]
Run Code Online (Sandbox Code Playgroud)

应用程序名称.url

from django.urls import path
from learning.views import SendEmail

urlpatterns = [
   path('',SendEmail.as_view(),name='home')
]
Run Code Online (Sandbox Code Playgroud)

python django django-urls

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

在change_form_object_tools.html模板中使用对象的id

我有两个指定不同路径的按钮。我想通过参数传递 object.id 。

我的网址

urlpatterns = [
    path('', admin.site.urls, name ='home'),
    path('dpo/imprimir/aprovado/<int:id>/',Aprovado, name ='aprovado'),
    path('dpo/imprimir/reprovado/<int:id>/',Reprovado, name ='reprovado'),
    ]
Run Code Online (Sandbox Code Playgroud)

我的看法

from django.http import HttpResponse
from django.shortcuts import render
from django.shortcuts import render_to_response
from .models import Projeto


def Aprovado(request, id):
        obj = Projeto.objects.get(id=id)
        context = {
                "object": obj
        }
        return render(request, "dpo/imprimir/aprovado.html", context)

def Reprovado(request, id):
        obj = Projeto.objects.get(id=id)
        context = {
                "object": obj
        }
        return render(request, "dpo/imprimir/reprovado.html", context)
Run Code Online (Sandbox Code Playgroud)

** 我的模板**

{% load i18n admin_urls %}
{% block object-tools-items %}
<li>
    <a …
Run Code Online (Sandbox Code Playgroud)

django django-urls django-admin

5
推荐指数
2
解决办法
2111
查看次数

Django 2.2.3 如何获取所有 url 模式和所有视图名称

我用 Django == 2.2.3 编写应用程序

现在我想获取我所有项目的所有 urls_patterns 和关联的视图名称。

我怎样才能得到这样的东西:

    urls_patterns_view_names_list = [
        ("view_name", "view_name: url_pattern"),
        ...,
        ...,
        ...,
]
Run Code Online (Sandbox Code Playgroud)

我已经看到了几个关于 url 模式问题的主题,但没有一个对应并做我想做的事情。在大多数情况下,答案对于我的情况来说都是非常古老且令人着迷的。这就是为什么我重新表述我的问题:我想要 url 模式,并且每个 url 都与其视图的名称相关联:如何在 python 3.7 上使用 Django 2.2.3 来做到这一点?

django django-urls django-views python-3.x

5
推荐指数
2
解决办法
4321
查看次数

Django - allauth:如何删除 allauth 登录和注册网址

我正在尝试使用 Django-allauth 进行某些密码重置功能,但是,我正在尝试使用 django-allauth 禁用登录/注册。到目前为止,我还没有找到一种方法将用户重定向到我的自定义注册和登录或完全禁用这些 URL。我想知道是否有解决方法可以删除这些 URL?

我当前的方法是手动添加所有 URL,但不添加这些 URL,但这会导致我的social-login链接出现错误。

目前,我已将以下内容添加到我的网址中:

url(r"^accounts/logout/$", allauth_views.logout, name="account_logout"),
    url(r"^accounts/password/change/$", allauth_views.password_change,name="account_change_password"),
    url(r"^accounts/password/set/$", allauth_views.password_set, name="account_set_password"),
    url(r"^accounts/inactive/$", allauth_views.account_inactive, name="account_inactive"),
    # E-mail
    url(r"^accounts/email/$", allauth_views.email, name="account_email"),
    url(r"^accounts/confirm-email/$", allauth_views.email_verification_sent,name="account_email_verification_sent"),
    url(r"^accounts/confirm-email/(?P<key>[-:\w]+)/$", allauth_views.confirm_email,name="account_confirm_email"),
    # password reset
    url(r"^accounts/password/reset/$", allauth_views.password_reset,name="account_reset_password"),
    url(r"^accounts/password/reset/done/$", allauth_views.password_reset_done,name="account_reset_password_done"),
    url(r"^accounts/password/reset/key/(?P<uidb36>[0-9A-Za-z]+)-(?P<key>.+)/$",allauth_views.password_reset_from_key,name="account_reset_password_from_key"),
    url(r"^accounts/password/reset/key/done/$", allauth_views.password_reset_from_key_done,name="account_reset_password_from_key_done"),
    # social account
    path('socialaccount/login/cancelled/', allauth_socialviews.login_cancelled,name='socialaccount_login_cancelled'),
    path('socialaccount/login/error/', allauth_socialviews.login_error,name='socialaccount_login_error'),
    path('socialaccount/signup/', allauth_socialviews.signup, name='socialaccount_signup'),
    path('socialaccount/connections/', allauth_socialviews.connections, name='socialaccount_connections'),
Run Code Online (Sandbox Code Playgroud)

但是,由于我有 Google 社交登录,因此出现错误:

Reverse for 'google_login' not found. 'google_login' is not a valid view function or pattern name

我怎样才能实现这个而不引起任何错误?

django django-urls django-views django-allauth

5
推荐指数
0
解决办法
1077
查看次数

姜戈。如何通过名称获取 URL?

我想按 中指定的名称获取 url urls.py

{% url 'some_name' %}与模板类似,但在 Python 中。

我的网址.py:

urlpatterns = [
    ...
    path('admin_section/transactions/', AdminTransactionsView.as_view(), name='admin_transactions'),
    ...
]
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

Input: url('admin_transactions')
Output: '/admin_section/transactions/'
Run Code Online (Sandbox Code Playgroud)

我知道django.urls.reverse函数,但它的参数必须是视图,而不是网址名称

python django django-urls django-url-reverse

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

如何使用 url 参数重定向登录用户?

http://127.0.0.1:8000/在我的 Django 项目中,如果用户未登录,我试图将主页重定向到登录页面,但有一个已登录的用户我想http://127.0.0.1:8000/成为http://127.0.0.1:8000/username/

我尝试了不同的答案,但没有具体的答案:这是登录后的登录视图:

class LoginView(LoginView):
    template_name = 'login.html'

    def get_success_url(self):
        user=self.request.user.username
        return f'/{user}/'
Run Code Online (Sandbox Code Playgroud)

这是登录网址:

    path('accounts/login/', LoginView.as_view(redirect_authenticated_user=True,template_name='users/login.html'), name='login'),
Run Code Online (Sandbox Code Playgroud)

这是主页视图:

class home(LoginRequiredMixin, ListView):
    model = Item
    template_name = 'app/home.html'
    context_object_name = 'items'
Run Code Online (Sandbox Code Playgroud)

这是应用程序网址:

    path('<str:username>/', home.as_view(), name='home'),
Run Code Online (Sandbox Code Playgroud)

我的问题:

http://127.0.0.1:8000/username/如果用户已登录,则如何重定向主页login page

python django django-urls django-views django-authentication

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

Django是否以某种方式缓存url正则表达式模式?

我是一个需要帮助的Django新手:即使我在urls.py中更改了一些网址,我也会继续从Django获取相同的错误消息.这是我的settings.py中的相关行:

ROOT_URLCONF = 'mydjango.urls'
Run Code Online (Sandbox Code Playgroud)

这是我的urls.py:

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Example:
    # (r'^mydjango/', include('mydjango.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
    # to INSTALLED_APPS to enable admin documentation:
    #(r'^admin/doc/', include(django.contrib.admindocs.urls)),

    # (r'^polls/', include('mydjango.polls.urls')),
    (r'^$', 'mydjango.polls.views.homepage'),
    (r'^polls/$', 'mydjango.polls.views.index'),
    (r'^polls/(?P<poll_id>\d+)/$', 'mydjango.polls.views.detail'),
    (r'^polls/(?P<poll_id>\d+)/results/$', 'mydjango.polls.views.results'),
    (r'^polls/(?P<poll_id>\d+)/vote/$', 'mydjango.polls.views.vote'),
    (r'^polls/randomTest1/', 'mydjango.polls.views.randomTest1'),
    (r'^admin/', include(admin.site.urls)),
)
Run Code Online (Sandbox Code Playgroud)

所以我希望每次访问http://mydjango.yafz.org/polls/randomTest1/时都应该运行mydjango.polls.views.randomTest1函数,因为在我的polls/views.py中我有相关的功能:

def randomTest1(request):
    # mainText = request.POST['mainText']
    return HttpResponse("Default random …
Run Code Online (Sandbox Code Playgroud)

python django django-urls

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

在url模式中提升Http404

我试图覆盖django-profiles中的url来引发404而不是传递给视图.

我正在寻找以下内容:

url(r'^profiles/$', lamdba x: raise Http404)
Run Code Online (Sandbox Code Playgroud)

但上述方法无效.这种事情有可能吗?

我知道我可以编写一个新的视图来引发404,但是如果我可以直接在url模式中执行它,我宁愿不知道.

编辑:具体来说,我得到invalid syntax (urls.py, line 29)了上面的例子.

python django django-urls

4
推荐指数
2
解决办法
2882
查看次数

Django:条件URL模式?

我想用另外一种 robots.txt根据我的服务器是生产还是开发文件.

为此,我想以不同的方式路由请求 urls.py:

urlpatterns = patterns('',
   // usual patterns here
)

if settings.IS_PRODUCTION: 
  urlpatterns.append((r'^robots\.txt$', direct_to_template, {'template': 'robots_production.txt', 'mimetype': 'text/plain'}))
else:
  urlpatterns.append((r'^robots\.txt$', direct_to_template, {'template': 'robots_dev.txt', 'mimetype': 'text/plain'}))
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为我没有patterns正确使用该对象:我明白了AttributeError at /robots.txt - 'tuple' object has no attribute 'resolve'.

我怎样才能在Django中正确执行此操作?

django django-urls

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

在app django中使用{%url'admin'%}参阅管理网站

我想使用{%url'admin'%}将用户移动到Django的管理面板网站,但问题是我在应用程序中渲染的模板,我不想url("^admin/",admin.site.urls)在project/site/urls.py中重写

这里是

project/urls.py

urlpatterns = [
url(r"^admin/", admin.site.urls, name="admin"),
url(r"^", include("core.urls")),]
Run Code Online (Sandbox Code Playgroud)

project/site/urls.py

urlpatterns = [
url(r"^$",indexView.as_view() ,name="index" ),
]
accountspattenrns = {
url(r"^accounts/signup/$",signupView.as_view() ,name="signup" ),    
url(r"^accounts/login/$",loginView.as_view() ,name="login" ),    
url(r"^accounts/logout/$",logoutView.as_view() ,name="logout" ),    
url(r"^accounts/profile/$",ProfileView.as_view() ,name="profile" ),    
}
urlpatterns +=accountspattenrns
Run Code Online (Sandbox Code Playgroud)

template.html

<li><a href="{% url 'admin' %}"><i class="fa fa-black-tie fa-2x"></i>
<div>Admin</div></a></li> 
Run Code Online (Sandbox Code Playgroud)

错误:

我得到的错误

python django django-templates django-urls

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