форма отношений? Чтобы например на 1 пост ложился список комментариев?, а не ManyToMany
ну, или, почему такого нету?
или в ручную разве что сам доделать пробовать. странно что в sql проблема со списками, нету понятия привычного питоновского списка
> sql проблема со списками, нету понятия привычного питоновского списка 😂 > Чтобы например на 1 пост ложился список комментариев У комментариев, в модели, делаешь FK на Пост и получаешь: Пост -> OneToMany -> Комментарии
а как в этот FK список загоняется? через .add() как в ManyToMany? я чет инструкции не видел я так понял туда только одно значение засовывается, и разница от OneToOne что оно может повторяться, т.к. FK(unique=True) == OneToOne. Выходит, если в FK можно список засунуть - значит в OneToOne тоже?
ааа, в моделе комментариев делать FK, а не в моделе поста. это я и так делаю. но а как их доставать? я делаю в моделе поста поле comments = ManyToMany('Comment') к комментариям - ибо проблема их доставать.
> а как в этот 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()
ManyToMany - достается аналогично: через related_name
commetns = post.comment_post.all() А это разве не достает все комменты вместе? как их разтасовать по соответсвующим им постам?
т.е. related_name может сократить немного времени? а то я в первый раз без него доставал с бубном
нет, только привязанные к текущему post. Джанго сама подставит фильтрацию по ИД
там есть по значение умолчанию, но я предпочитаю писать related_name
ладно, надо пробовать мне чет неочевиден синтаксис такой был чтобы через обьект post_ доставать comments , при том что в post_ поле под комменты не прописано и связи от post к comment не видно, а только от comment к post спасибо
дело привычки. Скажи спасибо разрабам джанго, что так можно)) Бывает эти связи нужно прописывать в запросе самому. Это сложнее. Особенно если sql плохо))
технику скрытую надо знать без нее надо через ManyToMany к коментам. Также, выходит, что если в админке смотреть на Пост - комментов ведь к нему не увидишь? если что - по одному удалять из модели "комменты"
там есть InlineAdmin
в доках скудно об этом написано, но вроде бы понятно там правда также подмечено что это о ManyToMany, а не FK?
наоборот - для FK. на примере выше: В админку Постов, сможешь изи добавить комменты
хм, посмотрел чуть выше - и для FK тоже есть, через related name как раз
кажется я тебя не понимаю. Через M2M связь, InlineAdmin не заюзаешь. Покрайней мере так в 2.2
да не важно, главное можно сделать на FK сейчас и вроде на M2M тоже если надо, в догматике джанги я еще не силен. я тут искал ctrl + f 'inline admin' и попал сразу на M2M https://docs.djangoproject.com/en/3.1/ref/contrib/admin/
А в моделе коментов - поле user должно быть OneToOne или FK тоже? ведь каждый коммент принадлежит лишь одному юзеру?
откуда же я знаю, как у тебя задумано?)
Обсуждают сегодня