Ich baue eine Django-Anwendung mit einer Rest-API, in der Benutzer Feeds abonnieren können.django-rest-framework: Wie repräsentiert man eine Viele-zu-Viele-Beziehung?
Mein Modell sieht wie folgt aus:
class Profile(models.Model):
user = models.OneToOneField(
User, # standard django user
on_delete=models.CASCADE,
primary_key=True
)
subscriptions = models.ManyToManyField(Feed, related_name="subscribers")
class Feed(models.Model):
# These feeds are read-only for the subscribers
pass
auf Englisch Erklärt:
Jeder Benutzer ein Profil hat. Dieses Profil kann Feeds abonnieren. Die Feeds können nur abonniert werden, sie können nicht von Benutzern erstellt oder aktualisiert werden.
Ich möchte einen Ruhe-Endpunkt zum Erstellen, Lesen, Aktualisieren und Löschen von Abonnements für den aktuellen Benutzer verfügbar machen. Natürlich würde ich gerne die generischen Ansichten verwenden, eine ListCreateAPIView
und eine RetrieveUpdateDeleteAPIView
, aber ich kann nicht herausfinden, wie man die richtigen Serialisierer und Abfragesätze erstellt, um diese einfach zu verwenden.
Ich endete mit /me/subscriptions/
eine Liste der Feeds direkt zurück, aber dann ist die POST
seltsam, weil es einen Feed erstellen würde, anstatt ein Abonnement zu erstellen.
Ich bin verwirrt ... Jeder Hinweis ist willkommen!
Benutzerprofil basierend auf 'request.user'? zum Beispiel 'GET''/subscriptions/'sollte Abonnements' Feed' für diesen Benutzer zurückgeben und 'POST' sollte einen mtm Link zu diesem Benutzer erstellen? –