2012-08-11 74 views
0

我正在開發一個博客項目。現在,當我加載127.0.0.1;我看到我的主頁列出了所有創建的帖子。當我點擊其中一個帖子時,它將重定向一個頁面。該網頁的網址如:127.0.0.1/first-post。django添加基址部分

我所試圖做的是一樣,

127.0.0.1/post/first-post

我怎樣才能做到這一點?

這裏是我的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)) 

回答

2
url(r'^post/(?P<postslug>[-\w]+)',view ='singlePost', name='view_blog_post'), 
+0

它的工作原理!我忘了編輯模板文件中的鏈接。我編輯了index.html中的鏈接。它的效果很好。謝謝 – alix 2012-08-11 20:17:00