В настоящее время у меня есть одна модель с именем Comments
.
После входа в канал YouTube в форме пользователь попадает в шаблон индекса, в котором отображаются все комментарии к видео канала YouTube, содержащего одно из трех ключевых слов (ключевое слово A, ключевое слово B, ключевое слово C).
Я хотел бы добавить функцию, чтобы в верхней части страницы было три ссылки / кнопки (каждая для одного из ключевых слов).
Пользователь может нажать на эту ссылку и без перезагрузки страницы (означает ли это, что мне понадобится AJAX?), Чтобы увидеть комментарии с этим ключевым словом, а не все комментарии с любым из трех ключевых слов.
В настоящее время я отправляю четыре объекта переменных содержимого из представлений в шаблон (один со всеми комментариями и три других объекта, каждый из которых содержит только объекты комментариев для этого ключевого слова).
Так что шаблон имеет доступ к нужным мне данным, мне просто нужно сделать так, чтобы при нажатии на одну из ссылок / кнопок показывался только этот контент.
Просмотры
def addTodo(request):
new_item =Channel(channel=request.POST['channel'])
#if channel exists render page with comments
if Channel.objects.filter(channel=new_item.channel).exists():
channel_obj=Channel.objects.get(channel=request.POST['channel'])
comments_object=Comments.objects.filter(channel=channel_obj)
comments_objectA=Comments.objects.filter(channel=channel_obj, key="keywordA")
comments_objectB=Comments.objects.filter(channel=channel_obj, key="keywordB")
comments_objectC=Comments.objects.filter(channel=channel_obj, key="keywordC")
return render(request, 'todo/index.html', {'comments_all': comments_object, 'commentsa': comments_objectA,'commentsb': comments_objectB,'commentsc': comments_objectC})
Индекс шаблона
#three buttons/links on top to allow user to sort..the part Im not sure how to do:
<button type="button"onclick="justshowrelatedcomment>KeywordA!</button>
<button type="button"onclick="justshowrelatedcomment>KeywordB</button>
<button type="button" onclick="justshowrelatedcomment>KeywordC</button>
#the comment structure, would want to replace comments_all with whatever button is clicked on.
<div class="new_comment">
<!-- build comment -->
{%for a in comments_all%}
<ul class="user_comment">
<!-- current #{user} avatar -->
<!-- the comment body --><div class="comment_body">
<p>{{ a.question }}</p>
</div>
</ul>
{% endfor %}
</div>
</div>
Я застрял .. Возможно ли это без Ajax?
Если Ajax - мой единственный / лучший вариант, как мне поступить?
Я использовал это решение, чтобы избежать AJAX, так как я не мог понять, как использовать AJAX.
Спасибо и ура.