0

そのため、各作成者にビューのみを提供するだけで、マルチユーザーブログに似ているはずの次のアプリを入手しました。

投稿の絶対 URL を除いて、すべてが機能しています。(私はそれを非常にシンプルに保ちたい - パブリッシュ/ドラフトなどを使用する必要はありません.)

これが私のコードです:

models.py: http://pastebin.com/pT91DUdZ

@permalink
def get_absolute_url(self):
    return ('blog_detail', None, {
        'year': self.created.year,
        'month': self.created.strftime('%b').lower(),
        'day': self.created.day,
        'slug': self.slug
    })

views.py: http://pastebin.com/FTb0s97u

def post_list(request, page=0, paginate_by=20, username=None, **kwargs):
    author = None
    if username is not None:
        author = get_object_or_404(User, username=username)

    return list_detail.object_list(
        request,
        queryset=author.post_set.created(),
        extra_context = {'author' : author},
        paginate_by=paginate_by,
        page=page,
        **kwargs
    )

urls.py: http://pastebin.com/Nv2SRbhe

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


urlpatterns = patterns('userblog.views',
     url(r'^(?P<username>.*)/(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/$',
         view='post_detail',
         name='blog_detail'
     ),
     url(r'^(?P<username>.*)/(?P<page>\d+)/$',
         view='post_list',
         name='blog_index_paginated'
     ),
     url(r'^(?P<username>.*)/$',
         view='post_list',
         name='blog_index'
),

ご覧いただきありがとうございます:)

編集:私は今のところ次のことをしました。かなり醜いことはわかっていますが、適切に行う方法がわかりませんでした。

def get_absolute_url(self):
    return '/blogs/%s/%s/%s/%s/%s/' % (self.author.username, self.created.year, self.created.strftime('%b').lower(), self.created.day, self.slug)
4

1 に答える 1

0

あなたのblog_detailurlpattern はユーザー名の購入を期待していますが、ユーザー名を渡していません。

于 2013-03-31T09:58:08.360 に答える