Найти - Пользователи
Полная версия: Помогите с фильтром Queryset
Начало » Django » Помогите с фильтром Queryset
1
W7NTED
никак не получается победить фильтрацию объектов

Суть, есть модели
 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 одинаковые планеты
m0nte-cr1st0
 candidates = Candidate.objects.filter(tested=True, planet=jedi.planet)
W7NTED
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

m0nte-cr1st0
W7NTED
NameError: name ‘jedi’ is not defined
Я понятия не имею, в какой переменной ты хранишь объект.
W7NTED
m0nte-cr1st0
спс за наводку и помощ, получилось так
 Candidate.objects.filter(planet=Jedi.objects.get(id=2).planet, tested=True)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB