mysql - Django ORM : Tried to do inner join with foreign key but causes FieldError

标签 mysql django foreign-keys inner-join

我是 django orm 的新手。 我的表格看起来像这样。

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)

我想知道模型或查询是否有问题。

最佳答案

使用prefetch_related

Product.objects.filter(name='a').prefetch_related('productoption_set')

关于mysql - Django ORM : Tried to do inner join with foreign key but causes FieldError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47276990/

相关文章:

python - Django:在 models.filefield(upload_to) 位置访问主键

sql - 基于索引名称而不是表(列)创建外键

database - 在定义表中使用外键还是在代码中使用常量?

mysql - MySQL中是否内置了 "appears in all"(集除法?)操作?

php - 拉维尔 4 : How to apply a WHERE condition to all queries of an Eloquent class?

MySQL match().... against() 与数字

python - 如何在python中解码ascii

php - 如何在比较数组的第一个值后检索数组的第二个值?

django - Django Official Tutorial Part 1索引超出范围错误

MySQL 在 <ColumName> 上创建外键时出错(检查数据类型)