标签: django-urls

使用Django的操作的默认参数

在正则表达式与django没有匹配的情况下,有没有办法将默认参数传递给一个动作?


urlpatterns = patterns('',(r'^test/(?P<name>.*)?$','myview.displayName'))

#myview.py
def displayName(request,name):
      # write name to response or something
Run Code Online (Sandbox Code Playgroud)

我已经尝试将urlpatterns中的第三个参数设置为包含'并且为name方法提供该方法的默认值的字典,但没有一个工作.name参数似乎总是为None.如果我可以设置默认值,我真的不想为None编码.

澄清:这是我正在改变它的一个例子.


def displayName(request,name='Steve'):
      return HttpResponse(name)
#i also tried

urlpatterns = patterns('',
      (r'^test/(?P<name>.*)?$',
        'myview.displayName',
        dict(name='Test')
      )
)
Run Code Online (Sandbox Code Playgroud)

当我将浏览器指向视图时,它会显示文本"无"

有任何想法吗?

python django django-urls

3
推荐指数
1
解决办法
2805
查看次数

通过约束选择将参数传递给Django中的视图

我正在寻找将两个参数中的任何一个传递给URL中的视图的最佳方法,而不允许任何其他参数.

例如,使用以下URL:

(r'^friends/requests', 'app.views.pendingFriends'),

(r'^friends/offers', 'app.views.pendingFriends'),
Run Code Online (Sandbox Code Playgroud)

如果可以将URL传递给视图,那么pendingFriends知道从哪个URL调用它就可以了.但是,我看不到这样做的方法.

相反,我可以将URL中的参数(requestsoffers)提供给单个Django视图,

(r'^friends/(?P<type>\w+', 'app.views.pendingFriends'),
Run Code Online (Sandbox Code Playgroud)

这个论点将告诉pendingFriends我们该怎么做.但是,这留下了传递给URL的其他参数的可能性(除了requestsoffers.)

理想情况下,我希望URL调度程序在无效参数传递给视图之前停止发生这种情况(通过404).所以我的问题是(a)这是最好的方法,(b)有没有办法约束传递给URL中的视图的参数requestsoffers

谢谢

python django django-urls

3
推荐指数
1
解决办法
1254
查看次数

如何在Django模板中集中URL?

我在编写Django应用程序时硬编码模板中的所有URL时犯了一个错误.

例如,我的链接看起来像:

<a href="/course/63/">Advanced Basketweaving</a>
Run Code Online (Sandbox Code Playgroud)

现在,我的客户坚决要求我更改类似于此链接的所有链接实例

<a href="/class/63/">Advanced Basketweaving</a>
Run Code Online (Sandbox Code Playgroud)

"课程"取代"课程"的地方.

用艾默生的话来说,愚蠢的一致性是小脑袋的大人物,所以我必须通过艰苦的寻找和替换操作来弥补我的错误.

在这里做什么是正确的?

django django-templates django-urls

3
推荐指数
1
解决办法
117
查看次数

Django URL中的重定向

如何将从特定模式开始的所有URL重定向到另一个?

描述:

我希望能够重定向如下:

/pattern1/step1/ to /pattern2/step1/
/pattern1/step2/ to /pattern2/step2/
/pattern1/continue/ to /pattern2/continue/
Run Code Online (Sandbox Code Playgroud)

在Django URL模式中执行此操作的最简单方法是什么?

django django-urls url-pattern

3
推荐指数
1
解决办法
964
查看次数

不能让django网址工作

我有一个简单的django设置,其中有一个名为' lists '的应用程序.我现在想要http://127.0.0.1:8000/lists显示这个应用程序.所以我将主urls.py更改为以下内容:

from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^lists/', include('lists.urls')),
    url(r'^admin/', include(admin.site.urls)),
)
Run Code Online (Sandbox Code Playgroud)

我将位于lists-folder(我的app称为列表)的urls.py更改为以下内容:

from django.conf.urls import patterns, url
from lists import views

urlpatterns = patterns(
    url(r'^$', views.index, name='index')
)
Run Code Online (Sandbox Code Playgroud)

据我所知,我完全按照django教程中的说明操作,但是当我访问http://127.0.0.1:8000/lists(没有斜杠)时,它给出了以下错误:

Page not found (404) Request Method:    GET Request URL:    http://127.0.0.1:8000/lists

Using the URLconf defined in companyLists.urls, Django tried these URL patterns, in this order:

    ^lists/
    ^admin/

The current URL, lists, didn't match …
Run Code Online (Sandbox Code Playgroud)

python django django-urls

3
推荐指数
1
解决办法
6129
查看次数

NoReverseMatch反向''带参数'(')和关键字参数''找不到

我在django视图中有这个:

edit_url = reverse('ventas:clientes_edit',kwargs={'id':str(self.object.id)})

这在urls.py中:

url(r'^clientes/edit/(?P<pk>\d+)$',forms.ClienteUpdateView.as_view(), name="clientes_edit"),

当我通过ajax创建一个新客户时,我需要在JSON数据中返回一个带有id的反向URL以放入一系列用于编辑,删除的操作按钮......但总是我得到这个错误,我不知道如何完成它,这是完整的错误:

NoReverseMatch at /ventas/clientes/add/ Reverse for 'clientes_edit' with arguments '()' and keyword arguments '{'id': '38'}' not found.

有任何想法吗?

编辑:

Django版本是1.5

django django-urls

3
推荐指数
1
解决办法
8366
查看次数

使用通用登录视图时"name'django'未定义"错误?

我正在尝试使用django提供的通用登录视图,这是我的urls.py:

url(r'^login/$', django.contrib.auth.views.login),
Run Code Online (Sandbox Code Playgroud)

当我运行服务器并转到

127.0.0.1 
Run Code Online (Sandbox Code Playgroud)

它给了我一个

NameError at /
Run Code Online (Sandbox Code Playgroud)

name 'django' is not defined
Run Code Online (Sandbox Code Playgroud)

当我删除'django'并将其留在

contrib.auth.views.login
Run Code Online (Sandbox Code Playgroud)

它给了一个

NameError at /
Run Code Online (Sandbox Code Playgroud)

name 'contrib' is not defined
Run Code Online (Sandbox Code Playgroud)

任何想法为什么以及如何解决这个问题?

django django-urls django-generic-views nameerror django-login

3
推荐指数
1
解决办法
5185
查看次数

Django URL名称在模板中使用

现在,在我的模板中,我将导航中的链接硬着如下:

`base.html`

<a href="/about">About</a>
<a href="/contact">Contact</a>
<!-- etc -->
Run Code Online (Sandbox Code Playgroud)

在我的 urls.py

urlpatterns = patterns('',
    url(r'^about/$', TemplateView.as_view(template_name='pages/about.html'), name='about'),
    url(r'^contact/$', TemplateView.as_view(template_name='pages/contact.html'), name='contact'),
 )
Run Code Online (Sandbox Code Playgroud)

有没有办法在我的base.html文件中引用urlpatterns,urls.py以便我随时更改它们,它反映了我的页面和模板的所有地方?就像是

<!-- what I would like to do -->
<a href="{{ reference_to_about_page }}">About</a>
<a href="{{ reference_to_contact_page }}">About</a>
Run Code Online (Sandbox Code Playgroud)

python django django-templates django-urls

3
推荐指数
2
解决办法
3571
查看次数

在Django中使用REST优于简单URL和视图创建的优势?

对许多人来说这可能是一个愚蠢的问题,但为什么我不能代替

  • 在django中创建一个视图,该视图接收请求并以JSON格式返回HttpResponse
  • 将视图映射到URL
  • 从我的浏览器或其他服务器点击URL并使用结果?

谢谢.

编辑 - 两种方法:导入一些djangorestframework或tastypie并在我的应用程序中构建一个api,它将抛出json响应 VS 构建基于类的视图并告诉它返回json响应.使用第一个是否有任何巨大的优势?

django rest django-urls django-views

3
推荐指数
1
解决办法
412
查看次数

(Django)如何将两个网址映射到一个视图?

这是来自models.py的课程:

class Person(models.Model):
    name = models.CharField(max_length=64)
    persnr = models.AutoField(primary_key=True)
Run Code Online (Sandbox Code Playgroud)

这是我的看法:

def show_person(request, persnr):
    pers = get_object_or_404(Person, pk=persnr)
    context={'pers':pers}
    return render(request, 'company/person.html', context)
Run Code Online (Sandbox Code Playgroud)

这是我的网址:

url(r'^show_person/(?P<persnr>\d+)', "company.views.show_person", name='show_person'),
Run Code Online (Sandbox Code Playgroud)

如何使用以下两个网址进入同一视图(show_person):

server/show_person/(persnr)

server/show_person/(name)
Run Code Online (Sandbox Code Playgroud)

python django django-urls django-views

3
推荐指数
1
解决办法
1828
查看次数