2017-11-14 19 views
0

django ormの新機能です。 私はこのようなテーブルを持っています。Django ORM:外部キーとの内部結合を試みましたが、FieldErrorが発生しました

class Product(models.Model): 
    id = models.UUIDField(primary_key=True, default=uuid.uuid4) 
    name = models.CharField(max_length=60) 

class ProductOption(models.Model): 
    id = models.UUIDField(primary_key=True, default=uuid.uuid4) 
    product_id = models.ForeignKey(Product, on_delete=models.CASCADE, null=True, blank=True) 

私は製品に関連したproductoption idを照会したいと思います。私は内部結合を行うためにこのようなクエリを作った。

Query = Product.select_related(‘product_id’).filter(name='a') 

そして、それは私がモデルやクエリで何かが間違っているかどうかを知りたい

django.core.exceptions.FieldError: Invalid field name(s) given in select_related: 'product_id'. Choices are: (none) 

というエラーメッセージがgaves。

+0

正確にご期待出力は何ですか? – scharette

+0

@scharetteすべての製品オブジェクトを取得し、product_idに接続したproductOptionsを取得したい – camila

+0

product_i_に接続されているproductOptionsどういう意味ですか?ある特定の 'Product'に対してproductOptionsをすべて取得したいのですか? – scharette

答えて

0

これは、関連オブジェクトを照会する方法ではありません。あなたは、外部キーを使用して私が正しく理解していれば、あなたはおそらくこのようなものを使いたいので:

Product.objects.filter(name='a').productoption_set.all() 
関連する問題