目前我的模型中有两个相关的类:一个UserProfile
类和models.py
中的FriendInvite
类
class UserProfile(models.Model):
user = models.OneToOneField(User)
username = models.TextField()
friends = models.ManyToManyField('self',through='FriendInvite',
symmetrical=False)
class FriendInvite(models.Model):
sender = models.ForeignKey(UserProfile,related_name='fi_sender')
invitee = models.ForeignKey(UserProfile,related_name='fi_invitee')
status = models.IntegerField(default=0)
def __str__(self):
return '%s invites %s' % (self.sender.username,self.invitee.username)
在serializers.py
:
在views.py
中:
from rest_framework import generics
from myapp.models import UserProfile
from myapp.serializers import UserProfileSerializer
class UserProfileList(generics.ListAPIView):
queryset = UserProfile.objects.all()
serializer_class = UserProfileSerializer
我生成了5个不同的用户和3个不同的朋友关系。但是,当我收到来自服务器的JSON响应时,它只包括发送邀请的用户,而不包括接收邀请的用户:
[{"id":1,"username":"U1","user":1,"friends":[5]},
{"id":2,"username":"U2","user":2,"friends":[]},
{"id":3,"username":"U3","user":3,"friends":[4]},
{"id":4,"username":"U4","user":4,"friends":[]},
{"id":5,"username":"U5","user":5,"friends":[2]}]
在本例中,U1向U5发送了invite,U3向U4发送了invite,U5向U2发送了邀请。我如何获得用户的已发送和已接收邀请的结果?在
我目前的解决方案是在
UserProfile
类中定义一个方法,并使用查询来获得我想要的对象集。不过,我还是想知道有没有其他方法可以做到这一点。在相关问题 更多 >
编程相关推荐