Как вывести список разделенных результатов в Django Rest Framework
В настоящее время у меня есть четыре конечные точки:
/boards
/boards/public_to_company
/boards/my_collections
/boards/shared_with_me
первая конечная точка получает все доски, а следующие 3 - это пользовательские действия, которые применяют некоторые фильтры. Но я хотел бы, чтобы /boards возвращало то же, что и три доски, но разделенное, что-то вроде этого:
{
public_to_company_boards: Object { count: 8, boards: […] }
shared_w_boards Object: { count: 1, boards: […] }
user_boards Object:{ count: 2, boards: […] }
}
Я не уверен, нужно ли мне использовать anotate или что-то подобное.
моя текущая модель:
class Board(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=200, blank=False, null=False)
description = models.TextField(max_length=1000, blank=True, null=True)
public_to_company = models.BooleanField(default=False)
share_list = ArrayField(models.CharField(max_length=15), null=True, blank=True, default=list)
last_update = models.DateTimeField(auto_now=True)
owner = models.CharField(max_length=200, blank=False, null=False)
deleted = models.BooleanField(default=False)
history = HistoricalRecords()
serializer:
class BoardSerializerList(serializers.ModelSerializer):
qtd_cards = serializers.SerializerMethodField()
@staticmethod
def get_qtd_cards(instance):
return instance.cards.count()
class Meta:
model = Board
fields = '__all__'
read_only_fields = ['owner']
view:
Буду благодарен, если у вас есть другие комментарии по поводу другой части кода. Я пытался сделать аннотацию на методе get_queryset, но это не работает. Я почти уверен, что мне нужно использовать другой сериализатор, и я пытаюсь сделать это сейчас.