Django Framework : Проблемы с настройками представлений
Я изучаю фреймворк Django и сталкиваюсь с некоторыми проблемами, которые мне не удаются.
На самом деле у меня есть такие приложения как Опросы/ Блог/ и моя домашняя страница/ установленные и работающие как я хочу.
Моя проблема заключается в том, чтобы отобразить все данные в моем файле homepage_index.html как :
_ сколько вопросов содержат мои опросы
_ сколько статей содержит мой блог
Обе информации получены из разных приложений.
В учебнике по Django я нашел решение для отображения на примере моих последних 3 Question.objects следующим образом.
homepage/views.py :
from django.views import generic
from django.utils import timezone
from polls.models import Question
class homepage(generic.ListView):
template_name = 'homepage/homepage_index.html'
context_object_name = 'latest_question_list'
def get_queryset(self):
return Question.objects.filter(pub_date__lte=timezone.now()).order_by('-pub_date')[:3]
моя домашняя страница_index.html работает :
{% if latest_question_list %}
<ul>
{% for question in latest_question_list %}
<li><a style="color: white; text-decoration: none;" href="{% url 'polls:detail.html' question.id %}">{{ question.question_text }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
Как я могу определить в моем homepage/views.py несколько имен context_object_name и несколько queryset, пожалуйста?
Я пытался прочитать много документации, но все равно не получается
Более подробную информацию вы можете найти в официальных документах, то, что вам нужно сделать, аналогично значению now в демо-версии.
https://docs.djangoproject.com/en/4.0/ref/class-based-views/generic-display/#listview
вам необходимо переопределить get_context_data
- подсчитать количество вопросов или блогов, или других данных, поместить их в контекст .
- и затем вывести число на
homepage_index.html.
Я нашел решение без переопределения get_context_data, но я решил половину моей проблемы (я не могу использовать метод переопределения get_context_data). Сейчас я могу отобразить несколько нужных мне данных на домашней странице index.html следующим образом :
from blog.models import Article
from polls.models import Question
from django.shortcuts import render
def homepage(request):
list_of_title_article = Article.objects.all()
list_of_title_question = Question.objects.all()
return render(request, 'homepage_index.html', {'latest_question_list': list_of_title_question, 'latest_article_list': list_of_title_article})
Выглядит так, как я хочу, но у меня все еще нет метода счетчика моих объектов.
Прямо сейчас я пытаюсь использовать Question.objects.all().count() и у меня нет контекста для передачи в render(request, ...)