2010-06-01 2 views
0

У меня есть приложение для мини-блога и система ответов. Я хочу перечислить все записи в мини-блоге и их ответы, если таковые имеются. я имею в views.pyблог django - ответы ответчика ответа после ответа

def profile_view(request, id): 
     u = UserProfile.objects.get(pk=id) 
     paginator = New.objects.filter(created_by = request.user) 
     replies = Reply.objects.filter(reply_to = paginator) 
    return render_to_response('profile/publicProfile.html', { 
     'object_list': u, 
     'list':paginator, 
     'replies':replies 
     }, 
     context_instance=RequestContext(request)) 

и в шаблоне:

<h3>Recent Entries:</h3> 
    {% for object in list %} 
<li>{{ object.post }} <br /> 
{% for object in replies %} 
{{ object.reply }} <br /> 
{% endfor %} 

упоминание: reply_to является ForeignKey Новый, а Новый является название «мини-блога» таблица

Но это только показывает все ответы для каждой записи в блоге, а не ответ для каждой записи, если есть один

спасибо

ответ

3

Во-первых, пожалуйста, подумайте о том, чтобы дать вашим переменным разумные имена. New, list и paginator совсем не описывают то, что на самом деле являются этими объектами, и в некоторых случаях они активно вводят в заблуждение, как и с object_list, который не является списком вообще, кроме одного элемента.

Во-вторых, код выполняет именно то, что вы просили (игнорируя тот факт, что код шаблона, который вы опубликовали, фактически недействителен, потому что вы не правильно вложили петли и переопределили переменную object). Вы получаете все записи, а - все ответы, затем отобразите список всех ответов под каждой строкой.

Вместо этого вы, очевидно, хотите получить ответы, прикрепленные к каждой записи. Так удалите строки со ссылкой на Reply в представлении, и в шаблоне использовать в reverse relationship:

{% for object in list %} 
    {{ object.post }} 
    {% for reply in object.reply_set.all %} 
    {{ reply }} 
    {% endfor %} 
{% endfor %} 

Наконец, как другие рекомендовали в ответ на другие вопросы, вы бы хорошо служил, прочитав Джанго учебник и книгу Django, доступные бесплатно в Интернете.

+0

Да. вы совершенно правы. спасибо! – dana

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