Ich habe eine Django App, und ich versuche herauszufinden, Mitarbeiter, die nicht in Anwesenheit 2017-12-05 war. Ich versuche, ein Abfrage-Set zu finden, um dies zu erreichen.Django Queryset NICHT INTERSECT für 2 Modelle mit Postgres
Im Folgenden sind die Details des Modells, Datensätze und das Ergebnis, das ich versuche zu erreichen.
Ich habe 2 Modelle:
class Employee(models.Model):
fullname = models.CharField(max_length=30, blank=False)
class Attendance(models.Model):
CHECKIN = 1
CHECKOUT = 2
ATTENDANCE_TYPE_CHOICES = (
(CHECKIN, "Check In"),
(CHECKOUT, "Check Out"),
)
employee = models.ForeignKey(Employee)
activity_type = models.IntegerField(choices = ATTENDANCE_TYPE_CHOICES, default=CHECKIN)
timestamp = models.DateTimeField(auto_now_add=True)
Angenommen, ich habe die Datensätze unter:
Employee
{"id":1, "employee":"michael jackson",
"id":2, "fullname":"mariah carey",
"id":3, "fullname":"taylor swift",
"id":4, "fullname":"selena gomez"}
Attendance
{"id":1, "employee": 1,"activity_type": 1, timestamp: "2017-12-05 09:08",
"id":2, "employee": 2,"activity_type": 1, timestamp: "2017-12-05 10:13",
"id":3, "employee": 2,"activity_type": 2, timestamp: "2017-12-05 15:13",
"id":4, "employee": 2,"activity_type": 1, timestamp: "2017-12-05 19:13",
"id":5, "employee": 3,"activity_type": 1, timestamp: "2017-12-06 08:08"}
Dies ist die beabsichtigte Ausgabe Ich versuche zu erreichen:
Für das Datum 2017- 12-05, dieser Mitarbeiter war nicht anwesend (dh es gab keinen Eintrag in Anwesenheit für 2017-12-05)
{"id":3, "fullname":"taylor swift",
"id":4, "fullname":"selena gomez"}
Was ist der Queryset, um den Mitarbeiter aufzulisten, der an einem bestimmten Datum 2017-12-05 nicht anwesend ist? Ich glaube, es ist ein Schnittpunkt und macht ein NICHT mit dem Mitarbeiter.