-
-
Notifications
You must be signed in to change notification settings - Fork 444
Open
Description
My model field:
class BaseModel(Model):
id = fields.BigIntField(pk=True, description="ID")
class SpiderConfig(BaseModel):
spider = fields.OneToOneField("work.Spider", related_name="config", on_delete=fields.CASCADE, description="所属接口", source_field="uniq_spider_id", forward_key="uniq_spider_id", )
# forward_key has no effect
class Spider(BaseModel):
name = fields.CharField(max_length=255, unique=True, index=True, description="爬虫名称", source_field="uniq_name")and code:
name_filters = ...
configs = await SpiderConfig.filter(tags_filters).distinct()
# tags 和 name 是 OR 关系
filters = Q(config__in=configs) | name_filters
query = Spider.all().filter(filters)
total_count = await query.count()it got error
File "D:\yintian\project\nasa\src\application\repositories\_base.py", line 74, in get_list_by_fmt
total = await query.count()
│ └ <function QuerySet.count at 0x000001DEBA6174C0>
└ <tortoise.queryset.QuerySet object at 0x000001DEBB337340>
File "D:\yintian\project\nasa\venv\Lib\site-packages\tortoise\queryset.py", line 1463, in _execute
_, result = await self._db.execute_query(*self.query.get_parameterized_sql())
│ │ │ └ <member 'query' of 'AwaitableQuery' objects>
│ │ └ <tortoise.queryset.CountQuery object at 0x000001DEBD54A3C0>
│ └ <member '_db' of 'AwaitableQuery' objects>
└ <tortoise.queryset.CountQuery object at 0x000001DEBD54A3C0>
File "D:\yintian\project\nasa\venv\Lib\site-packages\tortoise\backends\mysql\client.py", line 58, in translate_exceptions_
raise OperationalError(exc)
└ <class 'tortoise.exceptions.OperationalError'>
tortoise.exceptions.OperationalError: (1054, "Unknown column 'spider_config.spider_id' in 'on clause'")and I find SpiderConfig._meta.o2o_fields is {'spider'}, so orm need spider_config.spider_id, but I need spider_config.uniq_spider_id
Metadata
Metadata
Assignees
Labels
No labels