【发布时间】:2013-11-18 05:30:52
【问题描述】:
我在 django 中使用 rest_api 来显示“聊天”的查询集。 我尝试了一段时间,但没有成功...
在 angularjs 控制器中,我调用了一个执行以下操作的函数:
$scope.conversations = $http.get('/api/chats/').then(function(response){
return response.data;
});
在 rest_api 应用程序的 urls.py 中我放了这个:
url(r'^chats/$', login_required(views.chatsViewSet.as_view()) ),
在 rest_api 的 view.py 中我放了这个:
from rest_framework.generics import ListCreateAPIView
from serializers import ChatsSerializer
class ChatsViewSet(ListCreateAPIView):
serializer_class = ChatsSerializer
def get_queryset(self):
return Message.objects._folder(('sender', 'recipient'), {},order_by='-sent_at')
在 rest_api 的 serializers.py 中,我放了这个:
from postman.models import Message
from rest_framework import serializers
class ChatsSerializer(serializers.ModelSerializer):
class Meta:
model = Message
fields = ('id', 'sender', 'recipient','thread','subject','moderation_reason','body')
ordering =['-thread']
邮递员模型的Message中的'sender'和'recipient'字段是外键。
这里是发件人的定义,例如在邮递员的消息模型中:
sender = models.ForeignKey(get_user_model(), related_name='sent_messages', null=True, blank=True, verbose_name=_("sender"))
我希望 rest_api 中的查询集不仅包括发件人的 ID,还包括其用户名字段...
我尝试阅读一些帖子,例如在 rest_api 中使用“额外”,但我没有弄明白。 如果有人可以给我写明确的指示,我将不胜感激......
【问题讨论】:
-
您的问题在您的帖子中不清楚,请从问题描述开始问题:您的代码根本不起作用,还是您无法收到所需的响应。
-
它有效,但我不知道看到外键字段...
标签: python django rest angularjs django-queryset