首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用django non-rel时未保存对象

使用django non-rel时未保存对象
EN

Stack Overflow用户
提问于 2012-01-14 18:06:22
回答 1查看 1.1K关注 0票数 0

我的models.py:

代码语言:javascript
复制
class Projects(models.Model):
    projectName =models.CharField(max_length = 100,unique=True,db_index=True)
    projectManager = models.ForeignKey('Users')

class Users(models.Model):
    name = models.CharField(max_length = 100,unique=True)
    designation = models.CharField(max_length =100 )
    team = ListField(models.CharField(max_length =100),null=True)

现在,我正在尝试使用shell中的以下代码创建一个项目类对象:

代码语言:javascript
复制
user_object = Users.objects.get(name="abc")

p = Projects(projectName="xyz",projectManager = user_object)
p.save()

在p.save()上,它给出了错误:

代码语言:javascript
复制
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/aprainfo/env/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/db/models/base.py", line 460, in save
    self.save_base(using=using, force_insert=force_insert, force_update=force_update)
File "/home/aprainfo/env/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/db/models/base.py", line 543, in save_base
    for f in meta.local_fields if not isinstance(f, AutoField)]
File "/home/aprainfo/env/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/db/models/fields/subclassing.py", line 28, in inner
    return func(*args, **kwargs)
File "/home/aprainfo/env/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/db/models/fields/related.py", line 876, in get_db_prep_save
    connection=connection)
File "/home/aprainfo/env/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/db/models/fields/subclassing.py", line 28, in inner
    return func(*args, **kwargs)
File "/home/aprainfo/env/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/db/models/fields/subclassing.py", line 28, in inner
    return func(*args, **kwargs)
File "/home/aprainfo/env/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/db/models/fields/__init__.py", line 276, in get_db_prep_save
    return self.get_db_prep_value(value, connection=connection, prepared=False)
File "/home/aprainfo/env/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/db/models/fields/subclassing.py", line 53, in inner
    return func(*args, **kwargs)
File "/home/aprainfo/env/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/db/models/fields/subclassing.py", line 53, in inner
    return func(*args, **kwargs)
File "/home/aprainfo/env/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/db/models/fields/__init__.py", line 271, in get_db_prep_value
    value = self.get_prep_value(value)
File "/home/aprainfo/env/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/db/models/fields/__init__.py", line 479, in get_prep_value
    return int(value) ValueError: invalid literal for int() with base 10: '4f1116115fcff377b2000001'

我不知道为什么要在最后一行将字符串转换为int。我不知道如何摆脱这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-15 00:34:22

您的问题很可能与django非rel和mongodb-engine的安装有关。标准django要求所有id都是整数,而组成django non-rel的包套件将其更改为允许mongodb使用基于字符串的id。

我建议您按照http://django-mongodb.org/topics/setup.html上定义的顺序重新安装安装程序

我遇到了同样的问题,这是一个安装问题,可能是使用标准的django而不是非版本的django。

我的pip requirements.txt包含以下条目:

代码语言:javascript
复制
git+git://github.com/django-nonrel/mongodb-engine.git@master
git+git://github.com/django-nonrel/django-nonrel.git@master
git+git://github.com/django-nonrel/django-permission-backend-nonrel.git@master

然后我就可以做了:pip install -U -r requirements.txt

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8861516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档