Ich habe zwei Hauptmodelle, Comic und Issue, Ein einzelnes Comic hat mehrere Probleme. Ich versuche herauszufinden, wie man Probleme bekommt, die ein bestimmter Benutzer gelesen hat. Ich dachte daran, ein anderes Modell namens ReadIssue zu erstellen, um den Lesezustand zu speichern, aber ich kann nicht herausfinden, wie man je nach Benutzer eine Leseeigenschaft für jedes Problem erhält.django globales Objekt individuelle Benutzerbeziehung
0
A
Antwort
1
Von dem, was ich in Ihrem Text zu verstehen, könnte dies ein Weg sein, um die Basismodelle
class Comic(models.Model):
name = models.CharField(max_length=100)
class Issue(models.Model):
comic = models.ForeignKey(Comic, related_name='issues')
title = models.CharField(max_length=100)
def was_read_by(self, user):
return bool(self.users.filter(user=user).count())
class ReadIssue(models.Model):
user = models.ForeignKey(User, related_name='read')
issue = models.ForeignKey(Issue, related_name='users')
Jetzt bauen Sie Fragen wie diese
user = Users.objects.get(pk=1)
comic = Comic.objects.get(pk=1)
first_issue = comic.issues.all().first()
user_read_it = first_issue.was_read_by(user)
So überprüfen Sie nur, wenn die Kombination tun können user-issue
existiert in der ReadIssue
Tabelle. Natürlich wäre es eine gute Idee, ein index_together
für dieses Paar hinzuzufügen, denn so werden Sie höchstwahrscheinlich alle Suchvorgänge in dieser Tabelle durchführen.
Und durch Hinzufügen dieser kleinen Hilfsmethoden zu den Modellen können Sie das Ganze sehr ausdrucksstark und leicht zu folgen machen.
Verwandte Themen
- 1. Django globales Queryset
- 2. Firefox Addon globales Objekt vs. Firebug Konsole globales Objekt
- 3. C# Globales Objekt
- 4. Globales Objekt in ActionScript
- 5. Set globales Objekt in Shiny
- 6. Ereignis globales Objekt in Firefox
- 7. Individuelle Berechtigungsklasse in Django Tastypie
- 8. wie REAL globales Objekt in V8 erstellen?
- 9. Rails - Wie mache ich ein globales Objekt
- 10. Spielen! 2.0 Scala - Zugriff auf globales Objekt
- 11. Ein Objekt in ein globales Array einfügen?
- 12. Globales Variablenproblem
- 13. So verketten Sie Django-Querysets, die individuelle Reihenfolge erhalten
- 14. Erstellen Sie ein globales Objekt in Azure WCF-Projekt
- 15. Wo sollte ein globales Objekt in Code Igniter instanziiert werden?
- 16. OO Programmierung Design-Frage: Globales Objekt Teil II
- 17. Dependency Injection vs. Managed Abhängigkeiten vs. globales Objekt
- 18. Globales Konfigurieren von Winkeldirektiven
- 19. Gradient Descent globales Minimum?
- 20. Individuelle Dekorateur für Klasse basierte Ansichten in django Rest Rahmen
- 21. Laravel Scope mit einer Benutzerbeziehung zu prüfen Abonnement
- 22. Javascript Fehlermeldungen, individuelle Objektdarstellung
- 23. Individuelle UISlider
- 24. Individuelle Rundblick
- 25. Individuelle MvxAndroidSetupSingleton
- 26. Individuelle CodeAccessSecurityAttribute
- 27. Individuelle Tooltips
- 28. Individuelle Additionsmethode
- 29. Individuelle Bewertungsleiste
- 30. Django Objekt multiple exclude()
Danke! Genau das habe ich gesucht. Um dies in einer Vorlage zu verwenden, würde ich ein Template-Tag damit richtig machen? – ZucchiniZe
Ja. Und einige Dinge, die Sie direkt verwenden können, wie zum Beispiel '{% for issue in comic.issues.all%}, um alle Probleme eines' Comic's zu durchlaufen. – C14L