Erweiterte Filterung in Tastypie

Wie kann ich etwas verarbeiten, bevor ich etwas über Tastypie für einen bestimmten Benutzer zurückgibt?

Zum Beispiel, sagen wir, ich habe eine App, wo ein Benutzer hat Beiträge und kann auch folgen anderen Personen die Beiträge. Ich möchte die Post dieser Person mit den Beiträgen der Leute kombinieren, die sie verfolgen und sie als ein Array zurückgeben.

  • Zeromq: wie man unendlich warten kann
  • Löschen Sie die Methode auf Leinwand tkinter
  • Warum ist logged_out.html nicht in der django-Registrierung überschritten?
  • Mit PIL können Sie einen Scan einer leeren Seite erkennen
  • Berechnungswinkel zwischen zwei Zeilen in Python
  • MongoDB Suche nach jedem Dict in Liste in Sammlung
  • Also lasst uns sagen, dass in Tastypie möchte ich die neuesten 20 Beiträge aus dieser Person Timeline bekommen: Ich müsste den Benutzer zu bekommen, verarbeiten diese Informationen und geben Sie es in JSON, aber ich bin nicht ganz sicher, wie ich würde Verarbeiten und mit Tastypie zurückkehren.

    Irgendeine Hilfe?

    One Solution collect form web for “Erweiterte Filterung in Tastypie”

    Mehr komplexe Verarbeitung in get_object_list. Es wird angerufen, bevor der Dehydratationsvorgang beginnt, dh bevor der JSON erstellt wird, der zurückgegeben wird.

    class PostResource(ModelResource): class Meta: queryset = Post.objects.all() def get_object_list(self, request): this_users_posts = super(PostResource, self).get_object_list(request).filter(user=User.objects.get(user=request.user)) all_the_posts_this_user_follows = super(PostResource, self).get_object_list(request).filter(follower=User.objects.get(user=request.user)) return this_users_posts | all_the_posts_this_user_follows 

    Sie müssen diese Fragen reparieren, damit sie für Ihren speziellen Fall arbeiten. Dann ist der Trick, die beiden verschiedenen Quarysets zu kombinieren, die du zurückbringst, indem du sie verkalkst. Mit | Bekommt ihre volle Menge, mit & bekommt nur ihre Überlappung. Sie wollen den vollen Satz (es sei denn, Benutzer können auch ihre eigenen Beiträge folgen, dann können Sie wahrscheinlich unterscheiden () auf die resultierende superset).

    Python ist die beste Programmiersprache der Welt.