标签: django-urls

Django:用户名的urlpattern?

到目前为止,团队成员将此代码用于用户名的url模式:

# urls.py
urlpatterns = patterns('...',
   url(r'^user/(?P<username>[.-_\w]+)/foo', 'myapp.views.foo'),
   ....
Run Code Online (Sandbox Code Playgroud)

有一个隐藏的错误:如果用户名包含-倒车将失败,因为正则表达式的开始[.-_"从所有字符手段._".

可以使用什么模式匹配所有有效的用户名?

PS:我想-如果你想在django中匹配所有可能的用户名,那么将符号添加到正则表达式是不够的.

python regex django django-urls

6
推荐指数
2
解决办法
2255
查看次数

django中网站"root"的正则表达式是什么?

我正在使用django,当用户访问www.website.com/时,我想将它们指向索引视图.

现在我这样做:

(r'^$', 'ideas.idea.views.index'),
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用.我假设我的正则表达式是错误的.谁能帮我吗?我看过python正则表达式,但他们没有帮助我.

python regex django django-urls

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

Django url中的对象ID

我有一个像下面这样的 Post 模型:

class Post(models.Model):
    user = models.ForeignKey(User)
    posted = models.DateTimeField(auto_now_add=True)
    content = models.CharField(max_length=150)
    picturefile = models.ImageField(upload_to="post_content", blank=True)
Run Code Online (Sandbox Code Playgroud)

我希望能够将每个帖子的 id 放在一个 url 中,这样我就可以单独访问每个帖子。我以前用用户的 id 这样做过,并且能够查看用户的个人资料页面。

    url(r'^profile/(?P<username>\w+)/$', Dashviews.public_profile_view, name='public_profile_view'),
Run Code Online (Sandbox Code Playgroud)

但是如何使用帖子的 id 制作相同类型的网址?

python django url django-urls

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

如何在 Django 模板中将 get_absolute_url() 与外键对象一起使用

我对 django 比较陌生,我已经搜索过这个问题但找不到解决方案。如果解决方案很明显,请原谅我,但我似乎无法做到正确。

所以,这就是问题所在。我有两个模型ParisionerCommunity。教区居民与社区具有多对一的关系。在 parishioner_detail 页面上,我尝试将社区名称显示为 Community_detail 页面的链接。我觉得我没有正确使用 get_absolute_url() 方法。任何帮助,将不胜感激。

楷模:

from django.db import models
from django.core.urlresolvers import reverse

class Community(models.Model):
    name = models.CharField(max_length=41)
    description = models.TextField()
    leader = models.CharField(max_length=41)
    email = models.EmailField()
    phone_number = models.CharField(max_length=20)
    slug = models.SlugField(max_length=31, unique=True)

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('people_community_detail', kwargs={'slug': self.slug})

class Parishioner(models.Model):
    name = models.CharField(max_length=41)
    date_of_birth = models.DateField('date of birth', blank=True)
    email = models.EmailField()
    phone_number = models.CharField(max_length=20)
    start_date = models.DateField('date posted')
    societies = models.ManyToManyField(Society, blank=True, related_name='parishoners') …
Run Code Online (Sandbox Code Playgroud)

python django django-templates django-models django-urls

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

不支持在 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
查看次数