0

このチュートリアルhttp://lightbird.net/dbe/blog.htmlを使用して簡単なブログを作成しています。私はdjangoが初めてで、このチュートリアル内のいくつかの手順に従うのに問題があります。私は理解しようと最善を尽くしていますが、時には理解できないこともあります。ソースコードを取得しようとしましたが、ファイルが破損しています。

解釈が必要な手順は次のとおりです。

投稿ページ

また、投稿ごとに、訪問者のコメントと投稿テキスト全体を含む個別のページが必要になります (後でフロント ページに表示される投稿本文を制限することにした場合)。設定方法は次のとおりです。URL は /blog/post/{pk}/pk投稿のオブジェクトの主キーです。template が呼び出されpost.html、ビュー関数が になります post()

メイン リストには簡単なリンクが表示されます。

<div class="commentlink">
    <a href="{% url blog.views.post post.pk %}">Comments</a>
</div>

これが適切な質問でない場合は申し訳ありません。

私は投稿ページのステップまで進んでいますが、何をすべきかわかりません!

私のviews.py

 from django.core.paginator import Paginator, InvalidPage, EmptyPage
 from django.core.urlresolvers import reverse
 from django.shortcuts import render_to_response
 from blog.models import *
 from django.core.context_processors import csrf
 from django.http import Http404, HttpResponseRedirect
 from django.core.urlresolvers import reverse

 def main(request):
     """Main listing."""
     posts = Post.objects.all().order_by("-created")
     paginator = Paginator(posts, 2)

     try: page = int(request.GET.get("page", '1'))
     except ValueError: page = 1

     try:
         posts = paginator.page(page)
     except (InvalidPage, EmptyPage):
         posts = paginator.page(paginator.num_pages)

     return render_to_response("list.html", dict(posts=posts, user=request.user))


 def post(request, pk):
     """Single post with comments and a comment form."""
     post = Post.objects.get(pk=int(pk))
     comments = Comment.objects.filter(post=post)
     d = dict(post=post, comments=comments, form=CommentForm(), user=request.user)
     d.update(csrf(request))
     return render_to_response("post.html", d)
 def add_comment(request, pk):
     """Add a new comment."""
     p = request.POST

     if p.has_key("body") and p["body"]:
         author = "Anonymous"
         if p["author"]: author = p["author"]

         comment = Comment(post=Post.objects.get(pk=pk))
         cf = CommentForm(p, instance=comment)
         cf.fields["author"].required = False

         comment = cf.save(commit=False)
         comment.author = author
         comment.save()
     return HttpResponseRedirect(reverse('blog:add_comment'))
4

1 に答える 1

0

テンプレートの場合:

{% url blog:add_comment id_here %}

ビュー用

return HttpResponseRedirect(reverse('blog:view_name'))


def add_comment(request, pk):
    .......
    return HttpResponseRedirect(reverse("blog:post", args=[pk]))
于 2013-02-16T13:35:50.777 に答える