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

什么是正确的做法呢?

  • 我看到了如何将django ManyToManyField转换为Django-Nonrel字段? 但由于某种原因,这对我没有任何作用。
  • 我使用的是Django-Nonrel 1.5
  • 谢谢!

    链接地址: http://www.djcxy.com/p/71977.html

    上一篇: nonrel with mongodb relations

    下一篇: Backwards migration from Django 1.4 to Django 1.3