2013-02-16 7 views
0

Я создаю простой блог, используя этот учебник http://lightbird.net/dbe/blog.html. Я новичок в django, и у меня возникла проблема, следуя некоторым шагам в этом уроке. Я стараюсь изо всех сил понять, я иногда просто не понимаю. Я попытался получить исходный код, но файл поврежден.перевод django language

шаги мне нужно интерпретируя являются:

сообщение Страница

Мы также потребуется отдельная страница для каждого поста с комментариями посетителей и полный текст сообщения (если позже мы решили ограничить опубликованное на странице ). Вот как я планирую настроить: url будет /blog/post/{pk}/ где pk является основным ключом объекта post; шаблон будет называться 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')) 
+1

Это не шаг, это * часть * шага. –

+0

Да, я сделал projectapp, поэтому, хотя я мог бы быть готов к lightbird, но их некоторые шаги, которые не имеют смысла. Это нормально, если я пришлю вам код через 30 минут? – supersheep1

+0

Я отправил его @cathy – supersheep1

ответ

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])) 
+0

Итак, я должен взять функцию add_comment из моделей и поместить ее в виде? – supersheep1

+0

Хорошо. Я переместил add_comment fuction int views и отредактировал return HttpResponseRedirect (reverse ('blog: add_comment')), и я получаю эту ошибку Reverse для 'add_comment' с аргументами '()' и аргументами ключевого слова '{}' не найден. – supersheep1

+0

ОК. Я отправил свои взгляды – supersheep1

Смежные вопросы