我有这个页面http://127.0.0.1:8000/user/tom-brandy/.
页面上有一个链接http://127.0.0.1:8000/signup/.
如何tom-brandy在我的视图中提取呈现signup页面?
我正在考虑使用request.META['HTTP_REFERER']和使用字符串操作来获取它,但这听起来像是一种错误的方法.
有一个更好的方法吗?
设置名为的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')

我试图通过反向传递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) 嗨,我有一个像这样的网址模式:
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)
但没有快乐.
任何帮助将非常感激.
我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/哪里n是p.page_range应该导航到相应的页面分页.
但是,当我去/blog/或/blog/1/没有任何负载,并最终Django给我"没有收到数据"错误.我觉得我正在写我的正则表达式错误,但我尝试了一些排列并且没有任何运气(大多数给我"找不到页面"错误).
我也在官方Django文档中尝试过 …
我无法弄清楚为什么我会返回以下错误:
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中,有一种选择以这种方式设置URL
urlpatterns = patterns('',
...
)
urlpatterns += patterns('',
...
)
Run Code Online (Sandbox Code Playgroud)
在1.8的文档中没有看到,直到1.7存在.
如何拆分大网址模式列表?
我创建了一个模型'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) 我很惊讶我无法通过网址访问我的产品详细信息页面,我不明白为什么因为我已经做了很多次基本的事情...
我有一个页面显示我的所有产品,当用户点击产品时,他被重定向到产品细节,就是这样.
不知何故,当我点击链接到产品详细信息的链接或键入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?
这是我在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)
有人可以帮我解决这个问题如果你想要任何其他代码部分请评论