На моей модели Django-mongodb я хотел бы иметь объект со списком, содержащий ссылку на другие объекты. Вот пример того, что я хочу добиться:Django, mongodb, Tastypie-nonrel: Список ForeignKey
models.py
class Comment(models.Model):
title = models.CharField(max_length=50)
body = models.CharField(max_length=50)
class Post(models.Model):
name = models.CharField(max_length=50)
commentList = ListField(models.ForeignKey(Comment))
api.py (Tastypie Ресурсы)
class CommentResource(MongoResource):
class Meta:
object_class = Comment
queryset = Comment.objects.all()
resource_name = 'comment'
authentication = Authentication()
authorization = Authorization()
class PostResource(MongoResource):
commentList = ListField(models.ForeignKey('CommentResource', 'commentList') #Wrong but just the expression of my incomprehension.
class Meta:
object_class = Post
queryset = Post.objects.all()
resource_name = 'post'
authentication = Authentication()
authorization = Authorization()
В этом примере поле "commentList" содержит список «Идентификатор объекта», ссылающийся на объекты «Комментарий». Если ничего не будет сделано, HTTP-GET на мой ресурс «Post» даст мне:
[...],
objects: [
{
id: "4f47b159c789550388000000",
name: "Hello World",
commentList: "[u'4f47b14ec789550387000000']",
resource_uri: "/api/v1/post/4f47b159c789550388000000/"
}
]
То, что я хотел бы получить это:
[...],
objects: [
{
id: "4f47b159c789550388000000",
name: "Hello World",
commentList:
[
comment:{
title : "My comment title",
body : "It would be great if tastypie-nonrel could do this!",
resource_uri: "/api/v1/comment/454f4v59c789550388051486/"
}
],
resource_uri: "/api/v1/post/4f47b159c789550388000000/"
}
]
Мой вопрос: Как я могу разрешить ссылка на объекты Комментарий и сделать его доступным с вызовом API для источника rss Сообщение?
Если это не представляется возможным, что было бы лучшим способом создать мою нереляционную модель данных таким образом, чтобы сообщение может содержать несколько комментарий, но Комментарий Ало можно получить самостоятельно и обновляется самостоятельно?
Большое спасибо за помощь!