标签: django-urls

在django项目中映射主网址的最佳方法是什么?

我有一个包含一些应用程序的django项目.主urls.py包含我启用的应用程序中的urls.py,一切都很好.

现在我想配置项目,这样当你去http:// testsite /时,你会得到你去http:// testsite/app /时得到的页面.

我可以通过复制项目urls.py中的应用程序urls.py中的相应行来完成此操作,但这感觉很脏.

谁知道更好的方法?

django django-urls

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

反向未找到:从模板发送请求上下文

注意:在给出第一个答案之前,这个问题已被大量编辑.

嗨,

我是django的新手,如果我遗漏了一些明显的东西,请道歉.

我有一个urls.py文件,看起来像这样:

urlpatterns = patterns(
    '',
    (r'^$', 'faros.lantern.views.home_page'),
    (r'^login/$', 'django.contrib.auth.views.login'),
    (r'^logout/$', 'django.contrib.auth.views.logout'),
    (r'^about/$', 'faros.lantern.views.about_page_index', {}, 'about_page_index'),
    (r'^about/(?P<page_id>([a-z0-9]+/)?)$', 'faros.lantern.views.about_page', {}, 'about_page'),
)
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

def about_page_index(request):
    try:
        return render_to_response('lantern/about/index.html', context_instance=RequestContext(request))
    except TemplateDoesNotExist:
        raise Http404

def about_page(request, page_id):
    page_id = page_id.strip('/ ')

    try:
        return render_to_response('lantern/about/' + page_id + '.html', context_instance=RequestContext(request))
    except TemplateDoesNotExist:
        raise Http404
Run Code Online (Sandbox Code Playgroud)

以及包含以下内容的模板:

<a href="{% url lantern.views.about_page_index %}">Contact</a>
<a href="{% url lantern.views.about_page page_id="contact" %}">Contact</a>
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

Caught an exception while rendering: Reverse for '<function about_page at 0x015EE730>' with arguments '()' …
Run Code Online (Sandbox Code Playgroud)

django django-urls

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

更改管理站点网址

有没有办法改变网址在django中打开管理站点?我不想使用默认/管理员网址.我是django的新手,所以请尝试提供更详细的信息.

django-urls django-admin

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

Django评论,在网址评论中添加符号?

即时通讯使用评论系统,现在,我想从网址评论中重新编写细分,并添加一个符号#,我想将页面seccion精确地移动到评论列表到最后一个评论用户 <a name=#{{comment.id}}?> username </a>

我发布评论时使用next来重定向usen:

{% get_comment_form for object as form %}
<form action="{% comment_form_target %}" method="POST">
  {{ form }}
  <input type="hidden" name="next" value="{{ object.get_absolute_url }}" />
  <input type="submit" name="preview" class="submit-post" value="Preview"></td>  
</form>
Run Code Online (Sandbox Code Playgroud)

但是在Django Doc中没有任何关于重写或定制器的评论redirect/url

任何的想法?

谢谢

django django-urls django-comments

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

整理复杂的URL调度程序

我有两种不同的对象,我想在同一个URL下生活.一组对象需要传递给视图函数'foo',另一组需要传递给'bar'.

我目前正在使用大量的硬编码网址,如此...

urlpatterns = patterns('project.views',
    (r'^a/$', 'foo'),
    (r'^b/$', 'foo'),
    (r'^c/$', 'foo'),
    #...and so on until...
    (r'^x/$', 'bar'),
    (r'^y/$', 'bar'),
    (r'^z/$', 'bar'),
)
Run Code Online (Sandbox Code Playgroud)

是否可以定义每种类型的URL列表,如...

foo_urls = ['a', 'b', 'c'] #...
bar_urls = ['x', 'y', 'z'] #...
Run Code Online (Sandbox Code Playgroud)

...然后根据这些列表检查传入的URL?(如果它在'foo_urls'中,发送到'project.views.foo';如果它在'bar_urls'中,发送到'project.views.bar')?

我仅限于保持此结构以保持与以前网站的URL的兼容性,但是对于简化我的urls.py的方法的任何建议将非常感激.

django django-urls

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

匹配替代网址 - 正则表达式django网址

我想Django的网址只有2的替代品/module/in//module/out/

我正在使用

url(r'^(?P<status>\w+[in|out])/$', 
'by_status', 
name='module_by-status'),
Run Code Online (Sandbox Code Playgroud)

但是,它匹配其他模式,如/module/i/,/module/n//module/ou/.

任何提示都很赞赏:)

python regex django django-urls

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

反向Django通用视图,post_save_redirect; 错误'包含urlconf没有任何模式'

我确实看到另一个题为"如何使用django反向通用视图"和"django命名网址,通用视图"的问题,但我的问题有点不同,我不相信它是一个骗局.

码:

from django.views.generic import list_detail, create_update
from django.core.urlresolvers import reverse
from django.conf.urls.defaults import *

partners_add = {'form_class': FooForm,
      'post_save_redirect': reverse('foo-list'),
      }


urlpatterns = patterns('',
      url(r'^foo/$', list_detail.object_list, foo_list, name='foo-list'),
      url(r'^foo/add/$', create_update.create_object, foo_add, name='foo-add'),
      )
Run Code Online (Sandbox Code Playgroud)

但是,当我运行代码时,我收到错误"包含的urlconf bar.urls中没有任何模式".然后,当我将反向('foo-list')更改为'/ bar/foo /'时,它可以工作.但是,如果我在模板中调用{%url foo-list%},我会得到正确的URL并且代码可以工作.

添加反向也将破坏相同urlpatterns中具有相同错误的所有URL.

我在Python 2.6上运行Django 1.1

django django-urls

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

将urls.py中的变量(标志)传递给django中的views.py.

我目前有一个'博客'应用程序,它将根据用户名显示不同用户的博客帖子.这就是我的urls.py看起来像.

urlpatterns = patterns('blog.views',
              url(r'^(?P<blog_author>[^/]+)/$', 'entries',  name='blog'),
              url(r'^(?P<blog_author>[^/]+)/(?P<entry_slug>[^/]+)/$', 'blog_entry', name='blog_entry'),
          )
Run Code Online (Sandbox Code Playgroud)

因此,blog/authorname/将列出该特定作者的所有blogpost条目,blog/authorname/foo-post/并将呈现特定的博客帖子.我想要做的是永久地将校友成员的博客重定向到blog/alumni/authornameblog/alumni/authorname/foo-post/.我在我的用户模型中添加了一个字段,用于指示用户是否是校友.

对于普通用户和校友,views功能基本相同.这是我到目前为止一直在尝试做的事情:在entries视图函数中,我添加了一些可以检查校友成员的行.如果某一个博客作者是校友,会HttpResponsePermanentRedirectblogs/alumni/alumni_author/和自渲染部分是一样的,调用同一个entries视图功能.所以基本上,我的entries功能是尝试检查成员类型,为普通和校友成员呈现视图.

django redirect django-urls django-views

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

Django反向使用kwargs

比如,在我的注册类的post方法中,如果用户已经注册,我想将用户重定向到登录页面,这很简单.

class Register(View):
    ...
    def post(self, request):
        # Some code to check if the email address is already in the db
        message = {'message': 'You are already a member and registered the project.  Please just log-in',
                   'registration_date': the_registered_date}# The form with the filled-in data is returned
        return HttpResponseRedirect(reverse('accounts:login', kwargs = message))
Run Code Online (Sandbox Code Playgroud)

在我的urls.py中:

#urls.py
...
url(r'^login/{0,1}$', Login.as_view(), name='login', kwargs={'message': None, 'date': None}),
Run Code Online (Sandbox Code Playgroud)

这给了我错误信息:

Reverse for 'login' with arguments '()' and keyword arguments '{'message': 'You are already a member and registered the …
Run Code Online (Sandbox Code Playgroud)

django django-urls

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

“反向...未找到”-但是有吗?

好的,我已经为此付出了30分钟以上的努力,所以在这里我处于堆栈溢出状态。

我有一个模板:

{% if user.is_authenticated %}
<a href="{% url 'admin' %}">                                
   Admin
</a>  
{% endif %}  
Run Code Online (Sandbox Code Playgroud)

并在urls.py中:

urlpatterns = [
  path('admin', admin.site.urls, name = 'admin'),  
  path('', views.index, name ='index'), 
]
Run Code Online (Sandbox Code Playgroud)

但是我仍然得到:NoReverseMatch在/

找不到与“ admin”相反的位置。“ admin”不是有效的视图函数或模式名称。

这是为什么?我什至进行了测试,并用index替换了admin,并将其重定向到views.index。我尝试将模式名称替换为其他所有名称,并尝试将其与url路径进行匹配(就像现在一样)。没运气!我刚打破django吗?

django django-templates django-urls

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