у меня есть:Джанго не в другой таблице (не используя ID)
Модели:
class Category(models.Model):
description = models.CharField(unique=True, max_length=200)
myfield = models.CharField(unique=True, max_length=200)
class Car(models.Model):
categorys = models.ManyToManyField(Category)
myfield = models.CharField(unique=True, max_length=200)
Я пытаюсь выполнить следующий запрос:
Car.objects.filter(category__id = c.id)
.exclude(myfield__in =
Category.objects.all()
.only('myfield')
)
.order_by("id")
.first()
Я ожидал найти в результате:
SELECT ...
FROM `myapp_car`
INNER JOIN `myapp_car_categorys`
ON (`myapp_car`.`id` = `myapp_car_categorys`.`car_id`)
WHERE (...
AND NOT (`myapp_car`.`myfield` IN
(SELECT `myapp_category`.`myfield` FROM `myapp_category`)))
ORDER BY `myapp_car`.`id` ASC LIMIT 1;
Бу т я найти:
SELECT ...
FROM `myapp_car`
INNER JOIN `myapp_car_categorys`
ON (`myapp_car`.`id` = `myapp_car_categorys`.`car_id`)
WHERE (...
AND NOT (`myapp_car`.`myfield` IN
(SELECT `myapp_category`.`id` FROM `myapp_category`)))
ORDER BY `myapp_car`.`id` ASC LIMIT 1;
мне нужно использовать myfield
в выберите, не id
:
(SELECT `myapp_category`.`myfield` FROM `myapp_category`)
Как бы я получить этот результат?