python manage.py runserver
def get_queryset(self):
queryset = super().get_queryset().all( ).annotate(comment_count=Count("comments"))
# Проверяем пользователь авторизованный или нет
user_queryset = None
if self.request.user.is_authenticated
user_queryset = queryset.filter(author=self.request.user)
# Проверяем что пользовательский список вернул пустоту ИЛИ пользователь не авторизирован
if not user_queryset or not self.request.user.is_authenticated: # либо можно так - if not len(user_queryset):
queryset = queryset.filter(category__is_published=True,
is_published=True,
pub_date__lte=timezone.now())
# Если второй иф не сработал, значит нам важен список полученный в первом.
# Приравниваем его к основному
else:
queryset = user_queryset
return queryset
server {
listen 80;
server_name www.project1.ru project1.ru;
location / {
proxy_pass http://localhost:80;
}
}
Установить "можно" и в корневом(глобальном) питоне библиотеки. Но вот правильно, под каждый проект делать отдельное виртуальное окружение в папке проекта(или рядом). Активировать его и только потом уже ставить библиотеки. "Виртуальное окружение", это что-то вроде клонирования глобального питона в папку особую проектную и все последующие библиотеки будут в этой папке проекта. Очень часто бывает так, что разные проекты, требуют немного разные версии библиотек. И если вы будете ставить всё в глобальный питон, в глобальную папку. То вы очень и очень много проблем с этим словите. Ещё и замусоривание бывает из-за этого. А так проект новый создали, отдельное окружение создали, активировали. Внутрь наставили пакетов. Покодили, поигрались с проектом. Надо удалить? Удалил проект и весь огромный набор библиотек этого проекта удалится вместе с ним. Создаёте новый проект, с чистого листа, с чистым питоном. Ставите те библиотеки которые нужны только вам и только этому проекту. Не боитесь, что откат до "старой версии" какой-то особой библиотеки, не уронит другой проект, с другим набором библиотек, где нужна именно "новая версия".
Очень советую разобраться в виртуальных окружениях питона. Сейчас на рынке очень много вариантов как его реализовать, как и "программ" его создающих. Не только древний venv(в чём-то он для новичка проще, чтоб пощупать руками и понять логику).
З.Ы. Окружение ещё и позволяет работать с разными версиями питона более гибко. Бывают случаи, когда вам дают какой-то старый проект на доработку или поддержку. И там может быть как сам питон древней версии, так и набор библиотек очень древних. Окружение тут очень сильно поможет, виртуальное окружение. А если у вас таких проектов много будет, больше одного, то тем более. Дерзайте и удачи.