3

我是 Django 的新手。我的问题很简单,但我无法从网上找到的教程中找到我需要什么,也无法从我在 django 上购买的一本书中弄清楚我需要什么。

我正在写一个网站来存放在线漫画。假设网址是:

http://localhost:8000/

我想要一个请求基本 url 去最近的漫画。如果有 13 部漫画,那么我希望将请求上述 url 的用户发送到:

http://localhost:8000/13

同时,我希望输入的用户http://localhost:8000/13转到指定的 url。我该怎么做?

4

1 回答 1

1

为此,您将需要两个 url 模式,它们将映射到两个视图。第一个 url 用于主页 ( http://localhost:8000/),第二个 url 用于查看特定漫画 ( http://localhost:8000/<comic_id>)。然而,第一个 url 应该将用户重定向到最新的漫画,使用HttpResponseRedirect.

# assuming comic model similar to
class Comic(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    # other fields...

# urlpatterns
url(r'^$', 'index', name='index'),
url(r'^(?P<comic_id>\d+)/$', 'comic', name='comic'),

# views
def index(request):
    latest_comic = Comic.objects.order_by('-created')[0]
    # or as suggested by Alasdair's comment
    # latest_comic = Comic.objects.latest('created')
    return HttpResponseRedirect(reverse('comic', kwargs={'comic_id':latest_comic.pk}))

def comic(request, comic_id):
    comic = get_object_or_404(Comic, pk=comic_id)
    # ...
于 2012-10-14T16:03:41.773 回答