Size: a a a

Django [ru] #STAY HOME

2021 January 12

A

Alexander in Django [ru] #STAY HOME
Проблема появилась неоткуда. Менял только шапку, футер добавил (по моему ничего связанного здесь не должно быть). И вот модель:

class Post(models.Model):
   title = models.CharField(verbose_name='Заголовок', max_length=15)
   author = models.ForeignKey('auth.User', verbose_name='Автор', on_delete=models.CASCADE)
   category = models.ForeignKey('Category', verbose_name='Категория', on_delete=models.CASCADE, null=True,)
   body_preview = models.TextField(verbose_name='Превью содержания', null=True, max_length=120)
   body = models.TextField(verbose_name='Содержание')
   image = models.ImageField(upload_to='posts_photo', verbose_name='Изображение', null=True)

   def __str__(self):
       return f"{self.title} - {self.body_preview}"

   class Meta:
       verbose_name = 'Пост'
       verbose_name_plural = 'Посты'
источник

L

Laste in Django [ru] #STAY HOME
class SomeModel(models.Model):
   file = models.FileField()


some_model = SomeModel(...)
some_model.file.url

как мне получить полный путь к файлу some_model, если у меня media_url добавлен в urls?
источник

A

Alexander in Django [ru] #STAY HOME
Laste
class SomeModel(models.Model):
   file = models.FileField()


some_model = SomeModel(...)
some_model.file.url

как мне получить полный путь к файлу some_model, если у меня media_url добавлен в urls?
some_model.file.path
источник

С

Стёпа in Django [ru] #STAY HOME
Всем привет, столкнулся с такой проблемой, не понимаю как вытащить lookup_url_kwarg
источник

С

Стёпа in Django [ru] #STAY HOME
источник

NS

Nik S in Django [ru] #STAY HOME
подскажите, есть ForeinKey(ManyToOne), ManyToMany, OneToOne... А есть OneToMany? Какбы 4-ая форма отношений? Чтобы например на 1 пост ложился список комментариев?, а не ManyToMany
ну, или, почему такого нету?
или в ручную разве что сам доделать пробовать. странно что в sql проблема со списками, нету понятия привычного питоновского списка
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nik S
подскажите, есть ForeinKey(ManyToOne), ManyToMany, OneToOne... А есть OneToMany? Какбы 4-ая форма отношений? Чтобы например на 1 пост ложился список комментариев?, а не ManyToMany
ну, или, почему такого нету?
или в ручную разве что сам доделать пробовать. странно что в sql проблема со списками, нету понятия привычного питоновского списка
> sql проблема со списками, нету понятия привычного питоновского списка
😂

> Чтобы например на 1 пост ложился список комментариев
У комментариев, в модели, делаешь FK на Пост и получаешь: Пост -> OneToMany -> Комментарии
источник

NS

Nik S in Django [ru] #STAY HOME
Artem Gubatenko
> sql проблема со списками, нету понятия привычного питоновского списка
😂

> Чтобы например на 1 пост ложился список комментариев
У комментариев, в модели, делаешь FK на Пост и получаешь: Пост -> OneToMany -> Комментарии
а как в этот FK список загоняется?
через .add() как в ManyToMany?
я чет инструкции не видел
я так понял туда только одно значение засовывается, и разница от OneToOne что оно может повторяться, т.к. FK(unique=True) == OneToOne.
Выходит, если в FK можно список засунуть - значит в OneToOne тоже?
источник

NS

Nik S in Django [ru] #STAY HOME
Artem Gubatenko
> sql проблема со списками, нету понятия привычного питоновского списка
😂

> Чтобы например на 1 пост ложился список комментариев
У комментариев, в модели, делаешь FK на Пост и получаешь: Пост -> OneToMany -> Комментарии
ааа, в моделе комментариев делать FK, а не в моделе поста.
это я и так делаю.
но а как их доставать?
я делаю в моделе поста поле comments = ManyToMany('Comment') к комментариям - ибо проблема их доставать.
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nik S
а как в этот FK список загоняется?
через .add() как в ManyToMany?
я чет инструкции не видел
я так понял туда только одно значение засовывается, и разница от OneToOne что оно может повторяться, т.к. FK(unique=True) == OneToOne.
Выходит, если в FK можно список засунуть - значит в OneToOne тоже?
> а как в этот FK список загоняется?
никак, или я не понял твоего предыдущего вопроса, или ты не понял/осмыслил мой ответ

Прописываешь в FK поле related_name и через него строишь запросы. Например:
class Post(Model):
   title = ...
   text = ...


class Comment(Model):
   post = ForeignKey(Post, related_name='comment_post')


post = Post.objects.get(id=1)
commetns = post.comment_post.all()
источник

q

qwerty in Django [ru] #STAY HOME
Стёпа
Всем привет, столкнулся с такой проблемой, не понимаю как вытащить lookup_url_kwarg
lookup_field = “id”
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nik S
ааа, в моделе комментариев делать FK, а не в моделе поста.
это я и так делаю.
но а как их доставать?
я делаю в моделе поста поле comments = ManyToMany('Comment') к комментариям - ибо проблема их доставать.
ManyToMany - достается аналогично: через related_name
источник

NS

Nik S in Django [ru] #STAY HOME
Artem Gubatenko
> а как в этот FK список загоняется?
никак, или я не понял твоего предыдущего вопроса, или ты не понял/осмыслил мой ответ

Прописываешь в FK поле related_name и через него строишь запросы. Например:
class Post(Model):
   title = ...
   text = ...


class Comment(Model):
   post = ForeignKey(Post, related_name='comment_post')


post = Post.objects.get(id=1)
commetns = post.comment_post.all()
commetns = post.comment_post.all()
А это разве не достает все комменты вместе? как их разтасовать по соответсвующим им постам?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nik S
commetns = post.comment_post.all()
А это разве не достает все комменты вместе? как их разтасовать по соответсвующим им постам?
нет, только привязанные к текущему post. Джанго сама подставит фильтрацию по ИД
источник

NS

Nik S in Django [ru] #STAY HOME
Artem Gubatenko
ManyToMany - достается аналогично: через related_name
т.е. related_name может сократить немного времени? а то я в первый раз без него доставал с бубном
источник

С

Стёпа in Django [ru] #STAY HOME
qwerty
lookup_field = “id”
пробовал, не работает
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nik S
т.е. related_name может сократить немного времени? а то я в первый раз без него доставал с бубном
там есть по значение умолчанию, но я предпочитаю писать related_name
источник

NS

Nik S in Django [ru] #STAY HOME
Artem Gubatenko
нет, только привязанные к текущему post. Джанго сама подставит фильтрацию по ИД
ладно, надо пробовать
мне чет неочевиден синтаксис такой был
чтобы через обьект post_ доставать comments , при том что в post_ поле под комменты не прописано и связи от post к comment не видно, а только от comment к post
спасибо
источник

q

qwerty in Django [ru] #STAY HOME
Стёпа
Всем привет, столкнулся с такой проблемой, не понимаю как вытащить lookup_url_kwarg
В урлс попробуй CommentViewset.as_view({‘get’: ‘list’}}
источник

С

Стёпа in Django [ru] #STAY HOME
qwerty
В урлс попробуй CommentViewset.as_view({‘get’: ‘list’}}
Это же APIView
источник