我們假設我有三種型號:User
,CarBrand
,CarModel
,CarCharacteristics
。 CarCharacteristics
模型描述了用戶如何評價汽車的特性。因此,用戶可以有多個CarCharacteristics
對象,並且用戶可以有多個CarCharacteristics
。我該如何在Django中執行此查詢?
這是我的模型是這樣的:
class User(models.Model):
id = models.AutoField(primary_key=True)
class CarBrand(models.Model):
idcar_brand = models.AutoField(primary_key=True)
class CarModel(models.Model):
idcar_model = models.AutoField(primary_key=True)
car_brand = models.ForeignKey(CarBrand, null=True, on_delete=models.SET_NULL)
class CarCharacteristics(models.Model):
idcar_characteristics = models.AutoField(primary_key=True)
user = models.ForeignKey(User, on_delete=models.PROTECT)
car_model = models.ForeignKey(CarModel, on_delete=models.PROTECT)
我想要做的是讓所有CarBrand
對象,其中一個User
有CarCharacteristics
。這就是我現在正在做的:
car_chars = CarCharacteristics.objects.filter(user=user_id)
car_brands_ids = []
for car_char in car_chars:
brand_id = car_char.car_model.car_brand.idcar_brand
if brand_id not in car_brands_ids:
car_brands_ids.append(brand_id)
brands = CarBrand.objects.filter(idcar_brand__in=brand_ids)
有沒有更簡單的方法呢?如何獲得所有CarModels
哪裏存在CarCharacteristics
?
所以沒有答案被證明是對你有用嗎? –