Je veux ajouter des statistiques supplémentaires à un sérialiseur de travail pour le cadre de repos Django: Si je reçois une demande d'obtention de plusieurs cas, je souhaite retourner non seulement les cas, mais une statistique sur les cas correspondant à la demande (sans la pagination):
Demande: P>
class CaseSerializer(serializers.ModelSerializer): class Meta: model = Case fields = "__all__" def update(self, instance, validated_data): ... def create(self, validated_data): ...
3 Réponses :
Vous pouvez utiliser la pagination personnalisée puis ajouter cette classe à votre vue: p> Pour plus d'informations, voir styles personnalisés-pagination . P> < / p>
J'aime vraiment votre approche. Ce qui me manque, c'est l'accès aux objets Django dans def get_paginé_response, car je dois toujours calculer les statistiques et cela est difficile avec l'objet de données déjà sérialisé.
Vous pouvez modifier votre cours de sérialisation. J'écris une autre réponse
Ceci est juste un concept. Vous devez modifier ce code comme vous le souhaitez
class Ser1(serializers.ModelSerializer): class Meta: model = Stats fields = ('age_mean', 'age_sd',) class Ser2(serializers.ModelSerializer): class Meta: model = Case fields = ('__all__') class MainSer(serializers.Serializer): ser1 = Ser1() ser2 = Ser2(many=True) class Meta: fields = ('ser1', 'ser2',)
Ce que vous pouvez faire ici est de remplacer votre méthode Réponse Updater: J'ai ajouté la logique pour calculer la moyenne forte> de tous les résultats filtrés (non claqué) uniquement contre le nombre de comptes de tous les enregistrements. P> h2> listApiVievis.list code> et injecter vos données dans facilement p>
J'ai toujours un problème avec cette implémentation: auto.Quiseryset retourne malheureusement tous les cas et non les filtrages. Comment puis-je interroger les cas filtrés?
C'est vraiment simple à faire, donnez-moi juste une minute pour mettre à jour la réponse
@ Gurkenkönig vérifier maintenant, je pense que cela pourrait aider