Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 30, 2020 23:01:27

W7NTED
Зарегистрирован: 2019-08-07
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с фильтром Queryset

никак не получается победить фильтрацию объектов

Суть, есть модели

 class Planet(models.Model):
    planet = models.CharField(max_length=25, verbose_name='Планета')
class Candidate(models.Model):
    name_c = models.CharField(max_length=25, verbose_name='Имя')
    planet = models.ForeignKey(
        Planet, on_delete=models.CASCADE, verbose_name='Планета')
    tested = models.BooleanField(default=False, verbose_name='Протестирован?')
class Jedi(models.Model):
    name_j = models.CharField(max_length=20, verbose_name='Имя')
    planet = models.ForeignKey(
        Planet, on_delete=models.CASCADE, verbose_name='Планета')
Есть известный id выбранного объекта Jedi, нужно отобрать в переменную все объекты Candidate у которых tested = True и такая же планета, как и у выше упомянутого Jedi c его id,

Тоесть оканчательная задача, показать этому Jedi.id список объектов Candidate, у которых совпадают два условия, tested = True, у Candidate и Jedi.id одинаковые планеты

Отредактировано W7NTED (Янв. 30, 2020 23:03:15)

Офлайн

#2 Янв. 31, 2020 00:12:33

m0nte-cr1st0
Зарегистрирован: 2019-02-03
Сообщения: 47
Репутация: +  2  -
Профиль   Отправить e-mail  

Помогите с фильтром Queryset

 candidates = Candidate.objects.filter(tested=True, planet=jedi.planet)

Офлайн

#3 Янв. 31, 2020 09:04:31

W7NTED
Зарегистрирован: 2019-08-07
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с фильтром Queryset

m0nte-cr1st0
первый фильтр отрабатывает, второй пишет
 NameError: name 'jedi' is not defined
при
 Candidate.objects.filter(planet=Jedi.planet)
 TypeError: Field 'id' expected a number but got <django.db.models.fields.related_descriptors

Отредактировано W7NTED (Янв. 31, 2020 09:05:20)

Офлайн

#4 Янв. 31, 2020 09:40:19

m0nte-cr1st0
Зарегистрирован: 2019-02-03
Сообщения: 47
Репутация: +  2  -
Профиль   Отправить e-mail  

Помогите с фильтром Queryset

W7NTED
NameError: name ‘jedi’ is not defined
Я понятия не имею, в какой переменной ты хранишь объект.

Офлайн

#5 Янв. 31, 2020 10:01:02

W7NTED
Зарегистрирован: 2019-08-07
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с фильтром Queryset

m0nte-cr1st0
спс за наводку и помощ, получилось так
 Candidate.objects.filter(planet=Jedi.objects.get(id=2).planet, tested=True)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version