Size: a a a

Django [ru] #STAY HOME

2021 February 22

TB

Tim B in Django [ru] #STAY HOME
Nikolay Cherniy
это работает не так, если ты хочешь отфильтровать что-то у инстанса это нужно фильтровать отдельно, ты не можешь фильтруя модель а отфильтровать и айтемы, я уже не знаю как это еще сказать
class ModelA(models.Model):
   name = models.CharField(max_length=1)

class ModelB(models.Model):
   name = models.CharField(max_length=1)

class ModelAItems(models.Model):
   model_a = models.ForeignKey(ModelA, on_delete=models.CASCADE, related_name='items')
   model_b = models.ForeignKey(ModelB, on_delete=models.CASCADE)

нужный_мне_model_b_ид = 5
for instance_model_a in ModelA.objects.all():
   items = ModelAItems.objects.filtet(model_a=instance_model_a, model_b_id=нужный_мне_model_b_ид)
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Tim B
class ModelA(models.Model):
   name = models.CharField(max_length=1)

class ModelB(models.Model):
   name = models.CharField(max_length=1)

class ModelAItems(models.Model):
   model_a = models.ForeignKey(ModelA, on_delete=models.CASCADE, related_name='items')
   model_b = models.ForeignKey(ModelB, on_delete=models.CASCADE)

нужный_мне_model_b_ид = 5
for instance_model_a in ModelA.objects.all():
   items = ModelAItems.objects.filtet(model_a=instance_model_a, model_b_id=нужный_мне_model_b_ид)
так ты фильтруешь не модель а, а айтемы о чем и была речь выше только вот твои items с каждым циклом перезатераются
источник

TB

Tim B in Django [ru] #STAY HOME
Nikolay Cherniy
так ты фильтруешь не модель а, а айтемы о чем и была речь выше только вот твои items с каждым циклом перезатераются
ModelA.objects.filter(items__model_b=нужный_мне_model_b_ид)
Вы про это?



нужный_мне_model_b_ид = 5
for instance_model_a in ModelA.objects.filter(items__model_b=нужный_мне_model_b_ид):
   instance_model_a.items.all() не будет равна ModelAItems.objects.filtet(model_a=instance_model_a, model_b_id=нужный_мне_model_b_ид)
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Tim B
ModelA.objects.filter(items__model_b=нужный_мне_model_b_ид)
Вы про это?



нужный_мне_model_b_ид = 5
for instance_model_a in ModelA.objects.filter(items__model_b=нужный_мне_model_b_ид):
   instance_model_a.items.all() не будет равна ModelAItems.objects.filtet(model_a=instance_model_a, model_b_id=нужный_мне_model_b_ид)
я про то что если ты хочешь получить инстанс айтема, тебе нужно фильтровать айтемы, а не пользователей. И про то что если в цикле в переменную что-то присваивать, то с каждым новым циклом результат предыдущего цикла будет удаляться)
источник

nr

net ro in Django [ru] #STAY HOME
Можно ли наследоватся от класса модели (abstruct =False)  для модели(abstruct=True) с использования  доступа к базе как для модели(abstruct =False)
источник

TB

Tim B in Django [ru] #STAY HOME
Nikolay Cherniy
я про то что если ты хочешь получить инстанс айтема, тебе нужно фильтровать айтемы, а не пользователей. И про то что если в цикле в переменную что-то присваивать, то с каждым новым циклом результат предыдущего цикла будет удаляться)
Я бы хотел получить список пользователей с отфильтрованными айтемами одним запросом. Раньше видел, такое кто то делал, не могу вспомнить. Пойду дальше копать, спасибо за терпение)
источник

А

Алмаз in Django [ru] #STAY HOME
Здравствуйте ребята, кто может помочь? Делаю проект, типо тестирование, и база вопросов с примерно 2к вопросами(В будущем будет намного больше), нужно сгенерировать, все возможные варианты по 20 вопросов в каждом, но чтобы в вариантах были схожи максимум 10% вопросов т.е. 2. Если выбирать рандомно и сравнивать с теми которые уже сгенерировались, это миллион лет ожиданий, так как и пройти по всем возможным вариантам, еще и уходит время на сравнение нового варианта со старыми и тд.). Кто знает как можно это быстро сделать? Может быть есть какой нибудь алгоритм?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Tim B
Я бы хотел получить список пользователей с отфильтрованными айтемами одним запросом. Раньше видел, такое кто то делал, не могу вспомнить. Пойду дальше копать, спасибо за терпение)
тебе это получить в какой форме нужно? если ты это в дрф делаешь, то можно внутри сериализатора отфильтровать поле свяазанных айтемов
источник

TB

Tim B in Django [ru] #STAY HOME
Nikolay Cherniy
тебе это получить в какой форме нужно? если ты это в дрф делаешь, то можно внутри сериализатора отфильтровать поле свяазанных айтемов
Так и делаю, сериализатор список model_b
Тм несколько вложений, в методе сериализатора нужно передать ModelA.objects.filter(items__model_b=нужный_мне_model_b_ид) в таком формате с отфильтрованными items
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Tim B
Так и делаю, сериализатор список model_b
Тм несколько вложений, в методе сериализатора нужно передать ModelA.objects.filter(items__model_b=нужный_мне_model_b_ид) в таком формате с отфильтрованными items
ну смотри, делаешь поле items в сериализаторе сериалайзерметодфилдом, создаешь метод для получения - гет айтемс в нем получаешь селф, инстанс и вэлью, в контекст нужно пробростить значение ид модел б который тебе нужен и в этом методе value.filter(model_b=self.context['model_b_id'])
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Товарищи, такая штука. В админке можно пихнуть такую штуку
'classes': ('collapse',),
эта штука скрывает поля под спойлер. Можно ли как-то сделать чтоб этот спойлер по умолчанию был раскрыт?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Алмаз
Здравствуйте ребята, кто может помочь? Делаю проект, типо тестирование, и база вопросов с примерно 2к вопросами(В будущем будет намного больше), нужно сгенерировать, все возможные варианты по 20 вопросов в каждом, но чтобы в вариантах были схожи максимум 10% вопросов т.е. 2. Если выбирать рандомно и сравнивать с теми которые уже сгенерировались, это миллион лет ожиданий, так как и пройти по всем возможным вариантам, еще и уходит время на сравнение нового варианта со старыми и тд.). Кто знает как можно это быстро сделать? Может быть есть какой нибудь алгоритм?
мне кажется как не делай, все равно будет миллион лет, возможно из itertools комбинирующими итераторами попробовать сделать, но често говоря хз
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Дополнительный вопрос по админке джанговской. Как сделать чтоб help_text полей не выводился в админке?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Yegor Kowalew
Товарищи, такая штука. В админке можно пихнуть такую штуку
'classes': ('collapse',),
эта штука скрывает поля под спойлер. Можно ли как-то сделать чтоб этот спойлер по умолчанию был раскрыт?
источник

TB

Tim B in Django [ru] #STAY HOME
Nikolay Cherniy
ну смотри, делаешь поле items в сериализаторе сериалайзерметодфилдом, создаешь метод для получения - гет айтемс в нем получаешь селф, инстанс и вэлью, в контекст нужно пробростить значение ид модел б который тебе нужен и в этом методе value.filter(model_b=self.context['model_b_id'])
https://pastebin.com/hm5eKU2G

Мне надо сделать так, не хочется другие сериализаторы переписывать
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
чот у тебя там все плохо
источник

TC

Tom Cauf in Django [ru] #STAY HOME
Dan Tyan
модели покажи
Немного оффтопа. Помниться ты был в чате что-то типа "django_flood". Куда он делся, не в курсе? Чет не ищется поиском
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
class ModelAItemsSerializer():
   items = ModelAItemsSerializer(many=True)
вот это как понять, вопервых ты наследование не указываешь, ну ок, но у тебя внутри сериализатора айтемов есть поле с сериализатором айтемов, что это вообще?)
источник

TB

Tim B in Django [ru] #STAY HOME
Nikolay Cherniy
class ModelAItemsSerializer():
   items = ModelAItemsSerializer(many=True)
вот это как понять, вопервых ты наследование не указываешь, ну ок, но у тебя внутри сериализатора айтемов есть поле с сериализатором айтемов, что это вообще?)
Там везде serializers.ModelSerializer
items = ModelAItems
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Tim B
Там везде serializers.ModelSerializer
items = ModelAItems
это я понял, но уже если выкладываешь то лучше все, потому что хз где у тебя там ошибка может быть
источник