【发布时间】:2013-02-06 22:30:41
【问题描述】:
我正在尝试在 django-nonrel 中实现一个外键列表(我使用 mongo 作为数据库)。
代码如下:
# models.py
from django.db import models
from django_mongodb_engine.contrib import MongoDBManager
from djangotoolbox.fields import ListField
class FriendList(models.Model):
objects = MongoDBManager()
list = ListField(models.ForeignKey('AWUser'))
def add_friend(self, awuser):
# awuser must be an instance of AWUser - I removed tests for more clarity
self.list.append(awuser)
self.save()
class AWUser(models.Model):
objects = CustomUserManager()
user = EmbeddedModelField('User')
friends = EmbeddedModelField('FriendList')
问题是当我调用 user.friends.add_friend(user1) 时,我有错误 "AttributeError: 'str' object has no attribute '_meta'"。
突破性示例(使用 ./manage shell 控制台制作):
$>user = AWUser.objects.all()[0]
$>user1 = AWUser.objects.all()[1]
$>user.friends.add_friend(user1)
#ask me if you need the complete error - I don't put it more more clarity
AttributeError: 'str' object has no attribute '_meta'
我基本上需要的是创建朋友列表。
如果您认为我的不好,请随时推荐不同的实现。 :) 我希望我的实现能够正常工作...
另外,为了更清楚起见,我没有将 AWUser 的所有变量都放入,但如果需要,我可以添加它们。
相关项目依赖:
- django 1.3.1(安装为 django-nonrel)
- django-mongodb-engine 0.4.0
- djangotoolbox==0.9.2
- 列表项
- pymongo==2.1.1
感谢您的帮助。
更新:
我尝试按照帖子“ListField with ForeignField in django-nonrel”中所述更改代码,但我仍然遇到相同的错误...
【问题讨论】:
标签: django mongodb foreign-keys django-nonrel listfield