Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django URL正则表达式不工作_Python_Regex_Django_Django Urls - Fatal编程技术网

Python Django URL正则表达式不工作

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,

我对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, 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”),

为什么不使用基于类的视图?
对于这样的事情来说非常方便。

您有一些问题:

  • 您的URL模式无效,@maremare解释了如何修复它
  • 您正在调用的URL与您的模式不匹配。您的URL是
    /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)