Django.core.exceptions.FieldError: Невозможно преобразовать ключевое слово в поле

#################################### У меня есть следующий код: #####################################

class AppExpandAbstract(BaseModel):
    class Meta:
        abstract = True

    foreign_key = App
    target = models.ForeignKey(
        App,
        blank=True,
        default=None,
        on_delete=models.PROTECT,
        related_name="%(app_label)s_%(class)s",
        related_query_name="%(app_label)s_%(class)s",

    )


app_label = "com_longgui_app_proxy_nginx"

class LongguiAppProxyNginxAppConfig(AppConfig):
    name = app_label
    
class NginxAPP(AppExpandAbstract):
    class Meta:
        app_label = app_label
    
    is_intranet_url = models.CharField(verbose_name=_('Is Intranet URL', '是否内网地址'), max_length=128)


class ExpandManager(models.Manager):
    """ Enables changing the default queryset function. """

    def get_queryset(self, filters:dict={}):

        table_name = self.model._meta.db_table
        
        field_expands = field_expand_map.get(table_name,{})
        queryset = self.model.objects.all()
        
        annotate_params = {}
        related_names = []
        # values = []
        # for field in self.model._meta.fields:
        #     if field.name == 'password':
        #         continue
        #     values.append(field.name)
            
        for table, field,extension_name,extension_model_cls,extension_table,extension_field  in field_expands:
            related_name = extension_name+'_'+extension_model_cls._meta.object_name
            related_names.append(extension_table)
            annotate_params[field] = F(extension_table+'__'+extension_field)
            # values.append(field)
        
        # return queryset.annotate(**annotate_params).select_related(*related_names).values(*values)
        queryset = queryset.annotate(**annotate_params).select_related(*related_names)
        print(queryset.query)
        return queryset.values()

######################################## когда код выполняется здесь, происходит что-то неправильное! #########################################

apps = App.expand_objects.filter(
        tenant_id=tenant_id,
        is_active=True,
        is_del=False
    )

######################################## журнал ошибок #########################################

Traceback (most recent call last):
  File "/home/fanhe/workspace/arkid-v2.5/.venv/lib/python3.8/site-packages/ninja/operation.py", line 99, in run
    result = self.view_func(request, **values)
  File "/home/fanhe/workspace/arkid-v2.5/arkid/core/api.py", line 143, in func
    response = old_view_func(request=request, *params, **kwargs)
  File "/home/fanhe/workspace/arkid-v2.5/.venv/lib/python3.8/site-packages/ninja/pagination.py", line 141, in view_with_pagination
    items = func(*args, **kwargs)
  File "/home/fanhe/workspace/arkid-v2.5/api/v1/views/app.py", line 33, in list_apps
    apps = App.expand_objects.filter(
  File "/home/fanhe/workspace/arkid-v2.5/.venv/lib/python3.8/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/fanhe/workspace/arkid-v2.5/arkid/core/expand.py", line 64, in get_queryset
    queryset = queryset.annotate(**annotate_params).select_related(*related_names)
  File "/home/fanhe/workspace/arkid-v2.5/.venv/lib/python3.8/site-packages/django/db/models/query.py", line 1091, in annotate
    return self._annotate(args, kwargs, select=True)
  File "/home/fanhe/workspace/arkid-v2.5/.venv/lib/python3.8/site-packages/django/db/models/query.py", line 1130, in _annotate
    clone.query.add_annotation(
  File "/home/fanhe/workspace/arkid-v2.5/.venv/lib/python3.8/site-packages/django/db/models/sql/query.py", line 1062, in add_annotation
    annotation = annotation.resolve_expression(self, allow_joins=True, reuse=None,
  File "/home/fanhe/workspace/arkid-v2.5/.venv/lib/python3.8/site-packages/django/db/models/expressions.py", line 578, in resolve_expression
    return query.resolve_ref(self.name, allow_joins, reuse, summarize)
  File "/home/fanhe/workspace/arkid-v2.5/.venv/lib/python3.8/site-packages/django/db/models/sql/query.py", line 1779, in resolve_ref
    join_info = self.setup_joins(field_list, self.get_meta(), self.get_initial_alias(), can_reuse=reuse)
  File "/home/fanhe/workspace/arkid-v2.5/.venv/lib/python3.8/site-packages/django/db/models/sql/query.py", line 1648, in setup_joins
    path, final_field, targets, rest = self.names_to_path(
  File "/home/fanhe/workspace/arkid-v2.5/.venv/lib/python3.8/site-packages/django/db/models/sql/query.py", line 1562, in names_to_path
    raise FieldError("Cannot resolve keyword '%s' into field. "
django.core.exceptions.FieldError: Cannot resolve keyword 'com_longgui_app_proxy_nginx_nginxapp' into field. Choices are: app, config, config_id, created, description, entry_permission, entry_permission_id, id, is_active, is_del, logo, name, package, permission, secret, tenant, tenant_id, type, updated, url, userpermissionresult

Может ли кто-нибудь помочь мне?

Вернуться на верх