【发布时间】:2019-12-04 14:07:47
【问题描述】:
我在 Django 中有一个模型 Person
class Language(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Country(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Person(models.Model):
PersonId= models.UUIDField(
primary_key=True, default=uuid.uuid4, editable=False)
Countries = models.ManyToManyField(Country)
Languages = models.ManyToManyField(Language)
每个人可以有(访问)多个国家并拥有(说)多种语言。
我想创建一个 API,将其发送到少数 languages 和 countries 的端点列表,并将返回给我的人,他们的列表中至少有一种语言和一个国家/地区我发送的列表。
例如我有
Person(1,['Portugal', 'Spain'],['portugues','spanish']),
Person(2, ['Portugal', 'Germany'],['portugues','russian']),
Person(3,['France', 'Spain'],['spanish', 'french'])
我发送了数据
{
Countries: ['Portugal', 'France'],
Languages: ['russian', 'french']
}
所以在这种情况下它返回Person2 和Person3。
我的带有身份验证的 PersonView
class PeopleListView(ListAPIView):
queryset = Person.objects.all()
serializer_class = PersonSerializer
authentication_classes = [TokenAuthentication, ]
permission_classes = [IsAuthenticated, ]
def get_queryset(self):
return Blog.objects.filter(UserId=self.request.user)
有没有办法做到这一点?我不想通过 url 搜索,而是在正文中发送数据。
【问题讨论】:
标签: django api django-rest-framework