Вот таблица в классе из первого приложения django под названием proizvodi:
class Meblovi(models.Model):
class Meta:
verbose_name_plural = "Meblovi"
#OSNOVNI_PODACI
ime_proizvoda = models.CharField(max_length=120)
proizvodjac = models.CharField(max_length=120, default="proizvodjac")
sastav = models.CharField(max_length=120, default="sastav")
sirina = models.CharField(max_length=120, default="sirina")
zemlja_porekla = models.CharField(max_length=120, default="zemlja porekla")
stara_cena = models.DecimalField(decimal_places=2,max_digits=10,default=795.00)
nova_cena = models.DecimalField(decimal_places=2,max_digits=10,default=795.00)
na_lageru = models.BooleanField()
rok_isporuke = models.CharField(max_length=120, default="3 dana")
jedinica_mere = models.CharField(max_length=120, default="po dužnom metru")
#SLIKE
glavna_slika = models.ImageField(upload_to='proizvodi/', null=True, blank=True)
#KARAKTERISTIKE
vodootporan = models.BooleanField(default=False)
vodoodbojan = models.BooleanField(default=False)
nezapaljiv = models. BooleanField(default=False)
#OSTALO
izdvojeno = models.BooleanField()
def __str__(self):
return self.ime_proizvoda
Теперь вот таблица из другого приложения:
class Podmeblovi(models.Model):
class Meta:
verbose_name_plural = "Meblovi - podvrste"
#OSNOVNI_PODACI
model_mebla = models.CharField(max_length=120)
mebl = models.ForeignKey(Meblovi, on_delete=models.CASCADE)
slika = models.ImageField(upload_to='proizvodi/', null=True, blank=True)
#BOJE
bela = models.BooleanField(default=False)
svetlo_siva = models.BooleanField(default=False)
tamno_siva = models.BooleanField(default=False)
crna = models.BooleanField(default=False)
bez = models.BooleanField(default=False)
braon = models.BooleanField(default=False)
zuta = models.BooleanField(default=False)
narandzasta = models.BooleanField(default=False)
crvena = models.BooleanField(default=False)
bordo = models.BooleanField(default=False)
svetlo_zelena = models.BooleanField(default=False)
tamno_zelena = models.BooleanField(default=False)
svetlo_plava = models.BooleanField(default=False)
tamno_plava = models.BooleanField(default=False)
pink = models.BooleanField(default=False)
ljubicasta = models.BooleanField(default=False)
#DIZAJN
jednobojno = models.BooleanField(default=False)
sareno = models.BooleanField(default=False)
def __str__(self):
return self.mebl.ime_proizvoda + " " + self.model_mebla
Итак, я хочу сделатьSQL-запрос, который возвращает содержимое из таблицы Podmeblovi (второе приложение), но только если поле из таблицы Meblovi (первое приложение) 'vodootporan' равно 1. Я попытался INNER JOIN, но, похоже, он не работает.Кроме того, я хотел использовать RIGHT JOIN, но там написано, что в Django он еще не работает.Моя таблица из второго приложения связана с первой таблицей приложения с помощью внешнего ключа.Чтобы объяснить лучше, первая таблица приложения является основной информационной таблицей по умолчанию для продукта.Так, например, если у нас есть продукт из ткани под названием Portland, мы получили его дочерние продукты во втором приложении.Они бывают разных цветов и дизайнов, но цена и другие характеристики для них одинаковы.Итак, как я могу решить эту проблему?
Что я пробовал:
SELECT * FROM modeli_meblova_podmeblovi
INNER JOIN "proizvodi_meblovi" ON ("proizvodi_meblovi"."vodootporan" = "meblovi")
WHERE "proizvodi_meblovi" = 1
Это действительно не было ошибок, но в моей базе данных у меня есть продукты, проверенные true для поля 'vodootporan', но sqlне возвращал ни одной модели из базы данных.
Просто чтобы прояснить ситуацию, мне нужен sql-запрос, потому что у меня есть много фильтров для интеграции с ним.Другие фильтры взяты из базовой таблицы, а не объединены.