私はdjango-nonrelにforeignKeysのリストを実装しようとしています(私はdbとして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 console を使用して作成):
$>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 としてインストール)
- ジャンゴ-mongodb-エンジン 0.4.0
- ジャンゴツールボックス==0.9.2
- リスト項目
- ピモンゴ==2.1.1
ご協力いただきありがとうございます。
アップデート:
投稿「 ListField with ForeignField in django-nonrel 」で述べたようにコードを変更しようとしましたが、それでも同じエラーが発生します...