Remplacement de Django REST ViewSet avec une méthode de publication personnalisée et un modèle

J'ai un ModelViewSet dans Django de REPOS d'un Cadre qui me donne la possibilité de faire un POST et OBTENIR par le biais de l'adresse suivante:

api/v1/users

Ces Utilisateurs ont une relation inverse à une table et j'aimerais être en mesure d'accéder à ces Commentaires par le biais de l'URL:

api/v1/users/<username>/comments

J'ai été capable de faire cela par la mise en place d'une coutume @detail_route en remplaçant la queryset et et serializer_class mais il ne fonctionne que pour les requêtes GET. Si je tente de POSTER un nouveau commentaire à travers le RESTE du Cadre de la section admin, je reçois un avis d'erreur indiquant "'ListSerializer' objet n'est pas itératif"

Voici mon code:

class UserViewSet(viewsets.ModelViewSet):
    queryset         = User.objects.all()
    serializer_class = UserFlat
    lookup_field     = 'username'


    @detail_route(methods=['post','get'])
    def comment(self, request, **kwargs):

        user = self.get_object()

        self.queryset         = Comment.objects.filter(recipient=user.id)
        self.serializer_class = CommentFlat

        serializer = CommentFlat(instance=self.queryset, many=True)

        return Response(serializer.data)

Le nouveau commentaire devrait prendre les paramètres suivants:

commentaire.auteur, commentaire.message, un commentaire.destinataire

Je peux entrer dans tous ces domaines dans le panneau d'admin et de tenter de créer une requête post, mais il échoue. Idéalement, je dois remplir un commentaire.des messages et commentaires.l'auteur et le commentaire.champ du destinataire doit être autopopulated avec l'utilisateur.id qui est obtenu dans l'url api/v1/users/<username>/comments

Personne ne sait pourquoi mon post n'est pas de remplir et comment je peux le remplissage automatique qu'un champ?

source d'informationauteur user2989731 | 2015-03-10