从请求中获取URL

时间:2016-01-11 10:31:39

标签: python django

这是我的urls.py:

from django.conf.urls import include, url
from django.contrib import admin
from stories.views import check, post

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url('^.*/$', check),
]

这是我的观点.py:

from django.http import HttpResponse
from django.shortcuts import render
from datetime import datetime
from models import Story

from .forms import StoryForm

def check(request):
    try:
        existing_story = Story.objects.get(name=?URLRequested?)
    except Story.DoesNotExist:
        return HttpResponse(post(request))

    HttpResponse(existing_story.text)

我想转换输入的网址,重定向404并将其用作新对象的名称。怎么办呢?

1 个答案:

答案 0 :(得分:0)

最简单和最常见的方法是在您的网址中创建一个参数,尽管.*是一个非常广泛的正则表达式

url('^(?P<parameter_name>.*)/$', check),

def check(request, parameter_name):    
    try:
        existing_story = Story.objects.get(name=parameter_name)

更常见的是查找特定匹配项,例如\w+,以查找名称或类似文字的字符串。

有关详细信息,请参阅documentation