0

私はブログプロジェクトに取り組んでいます。127.0.0.1 をロードすると ; 作成されたすべての投稿を一覧表示するメイン ページが表示されます。これらの投稿の 1 つをクリックすると、1 つのページがリダイレクトされます。そのページの URL は 127.0.0.1/first-post のようになります。

私がやろうとしていることは、

127.0.0.1/投稿/最初の投稿

これどうやってするの?

ここに私の urls.py ファイルがあります:

from django.conf.urls import patterns, include, url
from userside.models import Post

urlpatterns = patterns('userside.views',
    url(r'^$','index'),
    url(r'^(?P<postslug>[-\w]+)',view ='singlePost', name='view_blog_post'),
)

ここに私のmodels.pyがあります:

from django.db import models
from django.db.models import permalink
from autoslug import AutoSlugField

class Post(models.Model):
    title = models.CharField(max_length = 100)
    text  = models.TextField()
    slug = AutoSlugField(populate_from='title',unique=True)
    posted = models.DateField(auto_now_add=True)

    def __unicode__(self):
        return self.title

    @permalink
    def get_absolute_url(self):
        return ('view_blog_post',None, {'postslug':self.slug})

そして、ここに私のメインurls.pyがあります:

from django.conf.urls import patterns, include, url

urlpatterns = patterns('',
    url(r'^', include('userside.urls')),
)

ここに私の views.py があります:

from userside.models import Post
from django.shortcuts import render_to_response,get_object_or_404
from django.template import RequestContext


def index(request):
    post_list = Post.objects.all().order_by("-posted")
    return render_to_response('userside/index.html',
                              {'post_list':post_list},
                              context_instance = RequestContext(request))

def singlePost(request,postslug):
    post = get_object_or_404(Post, slug=postslug)
    context = {'post':post}
    return render_to_response('userside/detail.html',context,context_instance = RequestContext(request))
4

1 に答える 1

2
url(r'^post/(?P<postslug>[-\w]+)',view ='singlePost', name='view_blog_post'),
于 2012-08-11T20:04:14.483 に答える