Python Django URL正则表达式不工作
我对Django的URL.py的regex部分有问题。我想为每个用户输入的条目显示一个页面。 My views.py看起来像:Python Django URL正则表达式不工作,python,regex,django,django-urls,Python,Regex,Django,Django Urls,我对Django的URL.py的regex部分有问题。我想为每个用户输入的条目显示一个页面。 My views.py看起来像: def tekent(request): tumentry = Entry.objects.get(id=id) return render_to_response("baslik/tekentry.html", locals(), context_instance=RequestContext(request)) def tek(request,
def tekent(request):
tumentry = Entry.objects.get(id=id)
return render_to_response("baslik/tekentry.html", locals(), context_instance=RequestContext(request))
def tek(request, slug):
basliklar = Baslik.objects.filter(active=True).order_by('-updated')
baslik = Baslik.objects.get(slug=slug)
entryler = baslik.entry_set.all()
form2 = EntryForm(request.POST or None)
if form2.is_valid():
entry = form2.save(commit=False)
entry.baslik = baslik
entry.user = request.user
entry.save()
return HttpResponseRedirect('/entry/%s'%(entry.id))
return render_to_response("baslik/tek.html", locals(), context_instance=RequestContext(request))
我的主URL.py(不是应用程序的)如下所示:
from baslik import *
urlpatterns = patterns('',
url(r'^entry/(?P<Entry.id>)/$', 'tekent', name = "tek_entry"),
)
DoesNotExist at /baslik/entry4/
Baslik matching query does not exist.
Request Method: GET
Request URL: http://127.0.0.1:8000/baslik/entry4/
Django Version: 1.6.5
Exception Type: DoesNotExist
Exception Value:
Baslik matching query does not exist.
Exception Location: /Users/malisit/Django/sozluk/lib/python2.7/site-packages/django/db/models/query.py in get, line 310
Python Executable: /Users/malisit/Django/sozluk/bin/python
我该怎么做才能解决这个问题?谢谢。试试看
url(r'^entry/(?P\d+)/$,'tekent',name=“tek_entry”),
为什么不使用基于类的视图?
对于这样的事情来说非常方便。您有一些问题:
/baslisk/entry4/
,但您的模式是entry/
tekent
不接受任何参数,因此即使您要修复URL模式,也不会调用视图方法locals()
。不要这样做url.py开始:
from baslik.views import tekent
# other imports
urlpatterns = patterns('',
url(r'^entry/(?P<id>\d+)/$', tekent, name = "tek_entry"),
)
r'^entry/(?P)/$”
不是有效的python正则表达式。我应该如何更改它以使其正常工作?现在我得到了它。谢谢。这很有帮助,非常感谢。这有帮助。
from django.shortcuts import render
from django.shortcuts import redirect
from django.shortcuts import get_object_or_404
def tekent(request, id):
tumentry = get_object_or_404(Entry, id=id)
return render(request, "baslik/tekentry.html", {'tumentry': tumentry})
def tek(request, slug):
baslik = get_object_or_404(Baslik, slug=slug)
basliklar = Baslik.objects.filter(active=True).order_by('-updated')
entryler = baslik.entry_set.all()
form2 = EntryForm(request.POST or None)
if form2.is_valid():
entry = form2.save(commit=False)
entry.baslik = baslik
entry.user = request.user
entry.save()
return redirect('tek_entry', id=entry.id)
ctx = {'form2': form2, 'baslikar': baslikar, 'entryler': entryler}
return render(request, "baslik/tek.html", ctx)