Size: a a a

Django [ru] #STAY HOME

2020 March 14

r

rtme in Django [ru] #STAY HOME
Помогите понять.

Имеем:
model АА ...

model B с отношением ForeignKey(AA)

model СС с отношением
ForeignKey(AA)
ForeignKey(BB)

model DD с отношением
ForeignKey(CC)
OneToOneField(User)

1. нужна фильтрация поля
в model СС у поля ForeignKey(BB) где B содержит только дочерние АА

2. нужна фильтрация
в model DD где
OneToOneField(User) == текущий пользователь

В django такая фильтрация делается на уровне модели ?

на уровне вью и форм понятно как
источник

DT

Dan Tyan in Django [ru] #STAY HOME
rtme
Помогите понять.

Имеем:
model АА ...

model B с отношением ForeignKey(AA)

model СС с отношением
ForeignKey(AA)
ForeignKey(BB)

model DD с отношением
ForeignKey(CC)
OneToOneField(User)

1. нужна фильтрация поля
в model СС у поля ForeignKey(BB) где B содержит только дочерние АА

2. нужна фильтрация
в model DD где
OneToOneField(User) == текущий пользователь

В django такая фильтрация делается на уровне модели ?

на уровне вью и форм понятно как
со вторым вроде ничего сложного
источник

AD

Alex Dem in Django [ru] #STAY HOME
rtme
Помогите понять.

Имеем:
model АА ...

model B с отношением ForeignKey(AA)

model СС с отношением
ForeignKey(AA)
ForeignKey(BB)

model DD с отношением
ForeignKey(CC)
OneToOneField(User)

1. нужна фильтрация поля
в model СС у поля ForeignKey(BB) где B содержит только дочерние АА

2. нужна фильтрация
в model DD где
OneToOneField(User) == текущий пользователь

В django такая фильтрация делается на уровне модели ?

на уровне вью и форм понятно как
на уровне модели - это как?
Мне честно говоря не понятен вопрос
источник

DT

Dan Tyan in Django [ru] #STAY HOME
D.objects.filter(user=request.user)
источник

r

rtme in Django [ru] #STAY HOME
Alex Dem
на уровне модели - это как?
Мне честно говоря не понятен вопрос
при создании модели сразу отфильтровать
источник

DT

Dan Tyan in Django [ru] #STAY HOME
модель ты создаешь один раз

ты можешь создавать запись или объект
источник

DT

Dan Tyan in Django [ru] #STAY HOME
просто с терминами надо немного разобраться
а то начнутся непонимания
источник

AD

Alex Dem in Django [ru] #STAY HOME
rtme
при создании модели сразу отфильтровать
Вы, вероятно, имели ввиду, при создании инстанса, но я все равно не понял
Что значит "отфильтровать при создании"?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
1 вариант
С.objects.filter(b__a__isnull=False)
источник

AD

Alex Dem in Django [ru] #STAY HOME
rtme
Помогите понять.

Имеем:
model АА ...

model B с отношением ForeignKey(AA)

model СС с отношением
ForeignKey(AA)
ForeignKey(BB)

model DD с отношением
ForeignKey(CC)
OneToOneField(User)

1. нужна фильтрация поля
в model СС у поля ForeignKey(BB) где B содержит только дочерние АА

2. нужна фильтрация
в model DD где
OneToOneField(User) == текущий пользователь

В django такая фильтрация делается на уровне модели ?

на уровне вью и форм понятно как
Пытаюсь осознать ваш вопрос
Единственное что вообще приходит к голову, это то, что вы можете создать @property у модели
либо сделать это в ModelManager

если это не те ответы, что вы ищете, я без понятия о чем вы спрашиваете)
источник

AD

Alex Dem in Django [ru] #STAY HOME
Alex Dem
Пытаюсь осознать ваш вопрос
Единственное что вообще приходит к голову, это то, что вы можете создать @property у модели
либо сделать это в ModelManager

если это не те ответы, что вы ищете, я без понятия о чем вы спрашиваете)
И тогда это будет фильтрация "на уровне модели", т.е. есть прописанная в классе самой модели либо ее менеджере
источник

AD

Alex Dem in Django [ru] #STAY HOME
rtme
Помогите понять.

Имеем:
model АА ...

model B с отношением ForeignKey(AA)

model СС с отношением
ForeignKey(AA)
ForeignKey(BB)

model DD с отношением
ForeignKey(CC)
OneToOneField(User)

1. нужна фильтрация поля
в model СС у поля ForeignKey(BB) где B содержит только дочерние АА

2. нужна фильтрация
в model DD где
OneToOneField(User) == текущий пользователь

В django такая фильтрация делается на уровне модели ?

на уровне вью и форм понятно как
источник

AD

Alex Dem in Django [ru] #STAY HOME
Оно?
источник

AD

Alex Dem in Django [ru] #STAY HOME
Менеджер позволит сделать конструкции вида:
MyModel.objects.filter_by_user(request.user)
Ну например
любые кастомизации
источник

r

rtme in Django [ru] #STAY HOME
похоже на то,
источник

A

Andrey in Django [ru] #STAY HOME
Можно ж кастомные менеджеры делать.
источник

r

rtme in Django [ru] #STAY HOME
Dan Tyan
1 вариант
С.objects.filter(b__a__isnull=False)
Спасибо
источник

AD

Alex Dem in Django [ru] #STAY HOME
источник

r

rtme in Django [ru] #STAY HOME
Вам тоже спасибо
источник

r

rtme in Django [ru] #STAY HOME
Хоть убедился что можно, а то думал что-то не то ищу )
источник