nonrel(Mongodb)。我创建了一个资源类,它从数据库中返回选定的auth_user。由于某些原因,我确实从 ObjectId 更改了 _id 字段类型到 Int64 。我使用raw_query()来访问所需的auth_user但它似乎不起作用。任何人都建议我该怎么做才能让raw_query()为UserModel工作。
以下是我的tastypie资源:
class UserResource(ModelResource):
class Meta:
queryset=User.objects.raw_query({'_id':5})
resource_name="user"
fields=["username","first_name","last_name"]
include_resource_uri=False
allowed_methods=["get"]
输出:
'UserManager' object has no attribute 'raw_query'
答案 0 :(得分:0)
这与Tastypie根本无关。您确定需要原始查询,还是以上只是一个示例?
通过查看docs,您应该可以执行以下操作:
from django_mongodb_engine.contrib import MongoDBManager
class User(models.Model):
mongo_manager = MongoDBManager()
然后你应该可以像上面那样使用它,即:
queryset=User.mongo_manager.raw_query({'_id':5})
答案 1 :(得分:0)
我自己解决了这个问题,为了别人的帮助,我正在回答我自己的问题。希望这会对某人有帮助。
此解决方案是创建代理模型。通过声明代理模型,我们可以在父模型上执行操作,甚至可以修改管理器。
代理模型:
class UserClass(User):
objects = MongoDBManager()
class Meta:
proxy=True
<强>资源:强>
class UserResource(ModelResource):
class Meta:
queryset=UserClass.objects.raw_query({'_id':5})
resource_name="user"
fields=["username","first_name","last_name"]
include_resource_uri=False
allowed_methods=["get"]