Django与MongoDB引擎 - 对象ID问题!
我正在使用Django 1.3beta,并且用django-mongodb-engine作为数据库后端。
我遇到的问题是,当我保存一个设置了主键的对象时,出现了这个错误:
/usr/local/lib/python2.6/dist-packages/django/db/models/fields/__init__.pyc in get_prep_lookup(self, lookup_type, value)
290 return value
291 elif lookup_type in ('exact', 'gt', 'gte', 'lt', 'lte'):
--> 292 return self.get_prep_value(value)
293 elif lookup_type in ('range', 'in'):
294 return [self.get_prep_value(v) for v in value]
/usr/local/lib/python2.6/dist-packages/django/db/models/fields/__init__.pyc in get_prep_value(self, value)
477 if value is None:
478 return None
--> 479 return int(value)
480
481 def contribute_to_class(self, cls, name):
ValueError: invalid literal for int() with base 10: '4cc75881006e4a1e0f000000'
我猜这是因为mongodb中的项目是以十六进制的形式存储的,而django则期望的是整数。
有没有什么建议可以解决这个问题?
1 个回答
3
你需要使用django的一个非关系型数据库的分支版本,也就是django-nonrel。如果你查看你发的链接,会看到在“要求”部分有说明。