python - AttributeError at/api/project/'Query' 对象没有属性 'query_terms' tastypie

标签 python django tastypie

class Project(models.Model):
     project_name = models.CharField(max_length=100,default=None)
     user = models.ForeignKey(User, on_delete=models.CASCADE)
     intro = models.TextField(default=None)
     start_date = models.DateField()
     end_date = models.DateField()

    def __str__(self):
       return self.project_name



class UserResource(ModelResource):
     class Meta:


class ProjectResource(ModelResource):
     user = fields.ToManyField(UserResource, 'user',  full=True)

    class Meta:
       queryset = Project.objects.all()
       resource_name = 'project'
       allowed_methods = ['post', 'get']
       authorization = DjangoAuthorization()

tastypie 的新手,当我关注文档时,我在 api url (api/project/) 上遇到属性错误不知道 query_terms 的含义,尝试搜索,提前致谢

  File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/exception.py", line 35, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 128, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 126, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.5/dist-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/tastypie/resources.py", line 221, in wrapper
    response = callback(request, *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/tastypie/resources.py", line 461, in dispatch_list
    return self.dispatch('list', request, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/tastypie/resources.py", line 493, in dispatch
    response = method(request, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/tastypie/resources.py", line 1348, in get_list
    objects = self.obj_get_list(bundle=base_bundle, **self.remove_api_resource_names(kwargs))
  File "/usr/local/lib/python3.5/dist-packages/tastypie/resources.py", line 2157, in obj_get_list
    applicable_filters = self.build_filters(filters=filters)
  File "/usr/local/lib/python3.5/dist-packages/tastypie/resources.py", line 2036, in build_filters
    query_terms = self._meta.queryset.query.query_terms
AttributeError: 'Query' object has no attribute 'query_terms'

最佳答案

似乎当前版本的 Django 和 Tastypie 不能很好地结合在一起。 该修复程序隐藏在 Nelly Ngo 提供的链接中,更具体地说是 here .

一个临时的 hackish 修复是修补 tastypie/resources.py。 在我的系统上的/usr/local/lib/python3.5/dist-packages/tastypie。

替换行:

if getattr(self._meta, 'queryset', None) is not None:
    # Get the possible query terms from the current QuerySet.
    query_terms = self._meta.queryset.query.query_terms
else:
    query_terms = QUERY_TERMS

与:

query_terms = QUERY_TERMS

query_terms = query_terms | set(GeometryField.class_lookups.keys())

与:

query_terms |= set(GeometryField.class_lookups.keys())

关于python - AttributeError at/api/project/'Query' 对象没有属性 'query_terms' tastypie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47845126/

相关文章:

python - Django - 没有交叉表的多对多关系

django - 使用 TastyPie 过滤不同的字段

python - 当反向关系上的 full=True 时,Django Tastypie 抛出 'maximum recursion depth exceeded'。

python - 如何有两个事件循环?

python - 如何为所有调用覆盖导入的 python 类

python - 由于 'INFO spawnerr: unknown error making dispatchers for ' app_name' : EACCES',无法使用 nohup 启动服务

python - 将 AT&T 语音转文本 API 与 Python 结合使用

django - 如何将call_command与dumpdata命令一起使用以将json保存到文件

python - 保存在DB中的Django Json如何在模板中使用?

python - 如何配置 Tastypie 以将字段视为唯一字段?