170 похожих чатов

Подскажите, есть ForeinKey(ManyToOne), ManyToMany, OneToOne... А есть OneToMany? Какбы 4-ая

форма отношений? Чтобы например на 1 пост ложился список комментариев?, а не ManyToMany
ну, или, почему такого нету?
или в ручную разве что сам доделать пробовать. странно что в sql проблема со списками, нету понятия привычного питоновского списка

20 ответов

19 просмотров

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

Nico- Автор вопроса

а как в этот FK список загоняется? через .add() как в ManyToMany? я чет инструкции не видел я так понял туда только одно значение засовывается, и разница от OneToOne что оно может повторяться, т.к. FK(unique=True) == OneToOne. Выходит, если в FK можно список засунуть - значит в OneToOne тоже?

Nico- Автор вопроса

ааа, в моделе комментариев делать 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

Nico- Автор вопроса

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

Nico- Автор вопроса

т.е. related_name может сократить немного времени? а то я в первый раз без него доставал с бубном

нет, только привязанные к текущему post. Джанго сама подставит фильтрацию по ИД

там есть по значение умолчанию, но я предпочитаю писать related_name

Nico- Автор вопроса

ладно, надо пробовать мне чет неочевиден синтаксис такой был чтобы через обьект post_ доставать comments , при том что в post_ поле под комменты не прописано и связи от post к comment не видно, а только от comment к post спасибо

дело привычки. Скажи спасибо разрабам джанго, что так можно)) Бывает эти связи нужно прописывать в запросе самому. Это сложнее. Особенно если sql плохо))

Nico- Автор вопроса

технику скрытую надо знать без нее надо через ManyToMany к коментам. Также, выходит, что если в админке смотреть на Пост - комментов ведь к нему не увидишь? если что - по одному удалять из модели "комменты"

там есть InlineAdmin

Nico- Автор вопроса

в доках скудно об этом написано, но вроде бы понятно там правда также подмечено что это о ManyToMany, а не FK?

наоборот - для FK. на примере выше: В админку Постов, сможешь изи добавить комменты

Nico- Автор вопроса

хм, посмотрел чуть выше - и для FK тоже есть, через related name как раз

кажется я тебя не понимаю. Через M2M связь, InlineAdmin не заюзаешь. Покрайней мере так в 2.2

Nico- Автор вопроса

да не важно, главное можно сделать на FK сейчас и вроде на M2M тоже если надо, в догматике джанги я еще не силен. я тут искал ctrl + f 'inline admin' и попал сразу на M2M https://docs.djangoproject.com/en/3.1/ref/contrib/admin/

Nico- Автор вопроса

А в моделе коментов - поле user должно быть OneToOne или FK тоже? ведь каждый коммент принадлежит лишь одному юзеру?

откуда же я знаю, как у тебя задумано?)

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта