nonrel与mongodb关系
我使用mongodb将django与MySQL转换为django-nonrel。 最大的问题是多对多的关系。 我看到models.ForeignKey的ListField无法按预期工作。
让我们说一个人可以写很多帖子,每个帖子都可以由很多人写。 所以我现在看到的解决方案真的没有效率:
class Person(models.Model):
first_name = models.TextField()
posts = ListField(models.ForeignKey('Post'))
def get_posts(self):
posts_list = []
for post_oid in self.posts:
author = Post.objects.get(id=post_oid)
posts_list.append(author)
return posts_list
class Post(models.Model):
text = models.TextField()
authors = ListField(models.ForeignKey(Person))
def add_author(self, person):
if self.has_author(person):
return
person.posts.append(ObjectId(self.id))
person.save()
self.authors.append(ObjectId(person.id))
self.save()
def get_authors(self):
authors_list = []
for person_oid in self.authors:
author = Person.objects.get(id=person_oid)
authors_list.append(author)
return authors_list
def has_author(self, person):
return ObjectId(person.id) in self.authors
什么是正确的做法呢?
谢谢!
链接地址: http://www.djcxy.com/p/71977.html