Size: a a a

Django [ru] #STAY HOME

2021 January 14

AY

Afzal Yusupov in Django [ru] #STAY HOME
источник

AY

Afzal Yusupov in Django [ru] #STAY HOME
Вот результат логов
источник

AY

Afzal Yusupov in Django [ru] #STAY HOME
Whitenoise уже установлен, есть в requirements.txt но всё равно не получается задеплоить в heroku. Что делать?
источник

3_

3ANov _ in Django [ru] #STAY HOME
Afzal Yusupov
Whitenoise уже установлен, есть в requirements.txt но всё равно не получается задеплоить в heroku. Что делать?
глупый вопрос, но всё же: whitenoise по инструкции настроен? прописан в middleware, указан STATICFILES_STORAGE?
источник

Н

Не выходи из комнаты... in Django [ru] #STAY HOME
Не выходи из комнаты.
это только в джанге могли назвать два класса - FileField, FieldFile и засунуть их в один модуль
Жесть, конечно
источник

NS

Nik S in Django [ru] #STAY HOME
Nik S
class Like(models.Model):
   user = models.ForeignKey(User, on_delete=models.CASCADE)
   post = models.ForeignKey(Post, on_delete=models.CASCADE)
Подскажите, как корректно удалять объекты модели Like(для реализации dislike, "больше не нравиться").
Через явный delete() вроде не вариант. Дело правда было на M2M поле, когда
Model.objects.get(user_id=id, post_id=post_id).delete()
вместо удаления объекта - удалило целого юзера и все его посты. Поэтому delete() боюсь
и я юзал remove() для M2M. А как с FK полем поступать?
кстати закончилось удалением этой тупой модели, переходом на М2М и .add()/.remove()
источник

Н

Никита in Django [ru] #STAY HOME
Всем привет!
Может кто знает !
В файле приложения mainapp.urls после того как залил на гит произошёл вот такой случай
Перестали выделяться product category и тд
и в templates не видит все эти урлы в файлах base.html и тд.
источник

NS

Nik S in Django [ru] #STAY HOME
class Post(models.Model):
   posted = models.DateTimeField(auto_now_add=True)
   user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='author')
   text = models.TextField(max_length=5000, null=True)
   liked_by = models.ManyToManyField(User, blank=True)
Подскажите, хочу отсюда во время итерации в цикле for узнавать лайкнул ли авторизованный пользователь - пост.
вариантов кроме как сделать это в шаблонах - невижу, должно быть чтото:
{% for post in posts %}
Liked: {{ post.liked_by.objects.get(user_id=user.id).exists() }}  #true/false
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nik S
class Post(models.Model):
   posted = models.DateTimeField(auto_now_add=True)
   user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='author')
   text = models.TextField(max_length=5000, null=True)
   liked_by = models.ManyToManyField(User, blank=True)
Подскажите, хочу отсюда во время итерации в цикле for узнавать лайкнул ли авторизованный пользователь - пост.
вариантов кроме как сделать это в шаблонах - невижу, должно быть чтото:
{% for post in posts %}
Liked: {{ post.liked_by.objects.get(user_id=user.id).exists() }}  #true/false
почитай про аннотации и subquery. Из БД прилетит сразу посчитанное значение. Просто выведешь
источник

NS

Nik S in Django [ru] #STAY HOME
Artem Gubatenko
почитай про аннотации и subquery. Из БД прилетит сразу посчитанное значение. Просто выведешь
радикально сделал через под-цикл for
{% for x_user in post.liked_by.all %}
    {% if x_user.username == user.username %}
но понятно это не дело.
есть чтото вроде {% if user in post.liked_by.all %} - но не закончил разбираться

Ок, сейчас почитаю
источник

NS

Nik S in Django [ru] #STAY HOME
Artem Gubatenko
почитай про аннотации и subquery. Из БД прилетит сразу посчитанное значение. Просто выведешь
а как мне это на фронте поможет?
из БД на фронт сразу не прилетает)
может попробовать метод прикрутить на модель
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nik S
а как мне это на фронте поможет?
из БД на фронт сразу не прилетает)
может попробовать метод прикрутить на модель
> Liked: {{ post.liked_by.objects.get(user_id=user.id).exists() }}  #true/false
как не прилетает? а post тут что?
источник

NS

Nik S in Django [ru] #STAY HOME
{% for post in posts %}
post элемент массива posts
источник

NS

Nik S in Django [ru] #STAY HOME
заранее нехитро достается так
posts = Post.objects.all().order_by('-posted')
и с контекстом подается
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nik S
{% for post in posts %}
post элемент массива posts
если posts - это не результат запроса, то когда переводишь данные из БД в кастомный класс, будут нужные данные для вывода.
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nik S
заранее нехитро достается так
posts = Post.objects.all().order_by('-posted')
и с контекстом подается
ну вот, а говоришь - не из БД
источник

NS

Nik S in Django [ru] #STAY HOME
Artem Gubatenko
почитай про аннотации и subquery. Из БД прилетит сразу посчитанное значение. Просто выведешь
не до конца понимаю - subquery или аннотация могут добавить еще какой-то элемент в каждый post из posts? иначе как я зацеплюсь в фронте на post.<чтото из subquery>?
Это сработает для каждого поста в цикле? а не 1 раз?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nik S
не до конца понимаю - subquery или аннотация могут добавить еще какой-то элемент в каждый post из posts? иначе как я зацеплюсь в фронте на post.<чтото из subquery>?
Это сработает для каждого поста в цикле? а не 1 раз?
доку почитал?

> ... аннотация могут добавить еще какой-то элемент в каждый post из posts?
в этой части вопроса, вписан правильный ответ)

subquery, сам по себе, не добавит новых свойств в объект
источник

Н

Не выходи из комнаты... in Django [ru] #STAY HOME
Artem Gubatenko
> Liked: {{ post.liked_by.objects.get(user_id=user.id).exists() }}  #true/false
как не прилетает? а post тут что?
Get и exists? 😏
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
пусть пробует - опыт нарабатывает. А мне лень разбирать все косяки )
источник