这是我的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并将其用作新对象的名称。怎么办呢?
答案 0 :(得分:0)
最简单和最常见的方法是在您的网址中创建一个参数,尽管.*
是一个非常广泛的正则表达式
url('^(?P<parameter_name>.*)/$', check),
def check(request, parameter_name):
try:
existing_story = Story.objects.get(name=parameter_name)
更常见的是查找特定匹配项,例如\w+
,以查找名称或类似文字的字符串。
有关详细信息,请参阅documentation