标签: django-urls

关于在Django中获取URL的问题

我有这个页面http://127.0.0.1:8000/user/tom-brandy/.

页面上有一个链接http://127.0.0.1:8000/signup/.

如何tom-brandy在我的视图中提取呈现signup页面?

我正在考虑使用request.META['HTTP_REFERER']和使用字符串操作来获取它,但这听起来像是一种错误的方法.

有一个更好的方法吗?

django httpwebrequest django-urls

0
推荐指数
1
解决办法
85
查看次数

找不到Django urls.py

设置名为的Django应用程序的URL OmniCloud_App.访问/ OmniCloud_App /注册时未获取URL的获取和错误.这是主要的urls.py:

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

然后包括OmniCloud_App/urls.py:

urlpatterns = patterns('OmniCloud_App.views',
    (r'^', 'home'),
    (r'^signup/', 'signup'),
    (r'^(?P<User_id>\d+)/$', 'profile'),
    (r'^(?P<User_id>\d+)/social$', 'social'),
    (r'^(?P<User_id>\d+)/news$', 'news'),
    (r'^(?P<User_id>\d+)/email$', 'email'),
    (r'^(?P<User_id>\d+)/photos$', 'photos'),
)
Run Code Online (Sandbox Code Playgroud)

所以注册应该转到views.py中的注册方法:

def signup(request):
    return render_to_response('OmniCloud_App/Templates/OmniCloud/signup.html', context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

有什么理由不行吗?这是404,这意味着它永远不会超过最初的urls.py文件,尽管访问简单/ OmniCloud_App /正确呈现'home'页面(也在include('OmniCloud_App.urls')

urls.py 404页

django django-urls django-views

0
推荐指数
1
解决办法
308
查看次数

reverse()不起作用

我试图通过反向传递id.但它不起作用.我收到了这个错误

使用参数'(20,)'和关键字参数'{}'找不到'reg.views.thanks'的反转.

这是我的views.py:

from django.http import HttpResponse, Http404, HttpResponseRedirect
from django.core.urlresolvers import reverse
from reg.models import registration, registrationform
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext


def registration(request):
    if request.method == 'POST':
        form = registrationform(request.POST)
        if form.is_valid():
            data = form.save()
            id = data.id
            return thanks(request,id)
    else:
        form = registrationform()
    return render_to_response('registration.html', {'form' : form}, context_instance=RequestContext(request))

def thanks(request, id):
    p = get_object_or_404(registration, pk=id)
    return render_to_response('thanks.html', {'reg' : p})
Run Code Online (Sandbox Code Playgroud)

这是我的urls.py:

from django.conf.urls import patterns, include, url
url(r'^registration/$', 'reg.views.registration'),
url(r'^thanks/$', 'reg.views.thanks'),
url(r'^$','django.views.generic.simple.direct_to_template', …
Run Code Online (Sandbox Code Playgroud)

python django django-urls django-views

0
推荐指数
1
解决办法
1798
查看次数

Django忽略url参数中的字符

嗨,我有一个像这样的网址模式:

url(
    r'^project_info/(?P<product>\w+)/$',
    'tool.views.ProjectInfo',
    name='project_info'
),
Run Code Online (Sandbox Code Playgroud)

这适用于普通字符串,但如果我想捕获像'my-product'这样的东西就会失败.

我试过像这样逃避破折号:

url(
    r'^project_info/(?P<product>\-\w+)/$',
    'tool.views.ProjectInfo',
    name='project_info'
),
Run Code Online (Sandbox Code Playgroud)

但没有快乐.

任何帮助将非常感激.

django django-urls

0
推荐指数
1
解决办法
262
查看次数

为什么Django不能反转这个带有一个可选参数的url正则表达式?

blog在我的root url conf 下有一个应用程序命名空间:

urlpatterns = patterns('',                                                                                                                                                                                                                                                    
    url(r'^blog/', include('blog.urls', namespace='blog')),                   
)
Run Code Online (Sandbox Code Playgroud)

这是我对博客索引的正则表达式blog.urls:

urlpatterns = patterns('', 
    url(r'^(?:(?P<page_num>\d+)/)?$', views.index, name='index'),
)
Run Code Online (Sandbox Code Playgroud)

这是我的博客索引视图:

def index(request, page_num):
    if not page_num:
        return redirect('blog:index', args=[1])
    post_list = Post.objects.all()
    p = Paginator(post_list, 10)

    try:
        posts = p.page(page_num)
    except PageNotAnInteger:
        posts = p.page(1)
    except EmptyPage:
        posts = p.page(p.num_pages)

    return render(request, 'blog/index.html', { 'post_list': posts })
Run Code Online (Sandbox Code Playgroud)

基本上,我想要的是/blog/1/在你导航时将网址重定向到/blog/,这就是为什么我做了page_num可选的.而且,当然要去/blog/n/哪里np.page_range应该导航到相应的页面分页.

但是,当我去/blog//blog/1/没有任何负载,并最终Django给我"没有收到数据"错误.我觉得我正在写我的正则表达式错误,但我尝试了一些排列并且没有任何运气(大多数给我"找不到页面"错误).

我也在官方Django文档中尝试过 …

regex django routing django-urls

0
推荐指数
1
解决办法
291
查看次数

Django NoReverseMatch网址

我无法弄清楚为什么我会返回以下错误:

NoReverseMatch at /
Reverse for '' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Run Code Online (Sandbox Code Playgroud)

这是我模板中的链接:

<li><a href="{% url catalog_home %}  }">Home</a></li>
Run Code Online (Sandbox Code Playgroud)

这是我的主要网址:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()


urlpatterns = patterns('',

(r'^', include('merged.catalog.urls')),
(r'^cart/', include('merged.cart.urls')),
(r'^checkout/', include('merged.checkout.urls')),
url(r'^admin/', include(admin.site.urls)),
)
Run Code Online (Sandbox Code Playgroud)

这是子网址:

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

urlpatterns = patterns('merged.catalog.views',
(r'^$','index', {'template_name': 'catalog/index.html'}, 'catalog_home'),
)
Run Code Online (Sandbox Code Playgroud)

似乎一切都井然有序,但也许我错过了一些明显的东西.

django django-urls

0
推荐指数
1
解决办法
350
查看次数

django 1.8中'urlpatterns + ='的替代方案是什么?

在旧版本的Django中,有一种选择以这种方式设置URL

urlpatterns = patterns('',
    ...
    )
urlpatterns += patterns('',
    ...
    )
Run Code Online (Sandbox Code Playgroud)

1.8的文档中没有看到,直到1.7存在.

如何拆分大网址模式列表?

python django django-urls

0
推荐指数
1
解决办法
1159
查看次数

Python:NoReverseMatch错误:反向'详细',参数'(UUID)'和关键字参数'{}'找不到.尝试了1种模式:django中的['']

我创建了一个模型'Post',其中我使用UUID而不是Django内置的自动生成ID.在'Post'模型中,我定义了一个def get_absolute_url,以便我可以将它保存在我的模板中.当我试图获得交易页面时,它引发了一个错误:NoReverseMatch at/deal/Reverse为'detail'带参数'(UUID('086d177f-9071-4548-b5db-1d329078853e'),)'和关键字参数'{}' 未找到.尝试了1种模式:['deal /(?P\d +)/ $'].我很感激帮助我解决这个问题.

这是我的代码:

Models.py:

class Post(models.Model):
    post_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
    from1 = models.CharField(max_length=20)

    def __str__(self):
        return self.post_id

    def get_absolute_url(self):
        return reverse("detail", args=(self.post_id))
Run Code Online (Sandbox Code Playgroud)

urls.py:

url(r'^deal/$', views.deal, name='deal'),
url(r'^deal/(?P<post_id>\d+)/$', views.post_detail, name='detail'),
Run Code Online (Sandbox Code Playgroud)

Views.py:

def deal(request):
    queryset_list = Post.objects.active() #.order_by("-timestamp")
    if request.user.is_staff or request.user.is_superuser:
        queryset_list = Post.objects.all()
    context = {
        "object_list": queryset_list, 
        "post_id": "List",
    }
    return render(request, 'before_login/deal.html', context)

def post_detail(request, post_id=None):  
    instance = get_object_or_404(Post, post_id=post_id)
    if instance.date > timezone.now().date():
        if not request.user.is_staff or …
Run Code Online (Sandbox Code Playgroud)

django django-models django-urls django-views

0
推荐指数
1
解决办法
2793
查看次数

为什么我的django网址会呈现错误的模板?

我很惊讶我无法通过网址访问我的产品详细信息页面,我不明白为什么因为我已经做了很多次基本的事情...

我有一个页面显示我的所有产品,当用户点击产品时,他被重定向到产品细节,就是这样.

不知何故,当我点击链接到产品详细信息的链接或键入de correct path to url时,它会加载显示所有产品的同一页面,但它甚至不会调用产品详细信息视图,为什么会这样?

以下是观点:

def rcdex(request):
    list = Liste.objects.all()
    return render(request, 'rcdex.html', {'list':list,})

def rc_detail(request, id):
    list = Liste.objects.get(id=id)
    return render(request, 'rc_detail.html', {'list':list,})
Run Code Online (Sandbox Code Playgroud)

以下是网址:

url(r'^', views.rcdex, name="rcdex"),
url(r'^rc/(?P<id>\d+)/$', views.rc_detail, name='rc_detail'),
Run Code Online (Sandbox Code Playgroud)

以下是我在模板上调用rc_detail视图的方法:

<th><a href="{% url 'rc_detail' l.id %}">{{ l.entreprise }}</a></th>
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它没有显示正确的模板(rc_detail.html)而是重新加载rcdex.html

python django django-urls

0
推荐指数
1
解决办法
995
查看次数

Django通过传递给模板的值更改URL

这是我在Django上的第一个项目,我想要做的是我从模板中的视图传递变量'a',我正在使用它像这样

<a href="{% url 'login:updateComplaint'%}{{a.id}}">
Run Code Online (Sandbox Code Playgroud)

在这种情况下去一个特定的网址说

http://127.0.0.1:8000/login/updateComplaint/4
Run Code Online (Sandbox Code Playgroud)

但不是这个,我的代码将我发送到这个网址

http://127.0.0.1:8000/login/updateComplaint/0/4
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题如果你想要任何其他代码部分请评论

django django-urls

0
推荐指数
1
解决办法
105
查看次数