それで、私が3つのモデルを持っているとしましょう:User
、、、、。このモデルは、ユーザーが車の特性をどのように評価するかを示しています。したがって、ユーザーには多くのオブジェクトが存在する可能性があり、ユーザーは多くのオブジェクトを持つことができます。CarBrand
CarModel
CarCharacteristics
CarCharacteristics
CarCharacteristics
CarCharacteristics
これは私のモデルがどのように見えるかです:
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)
私がやりたいのは、aが。を持つすべての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
ますか?