Ich habe ein Problem beim Generieren von ORM Abfrage auf Tabellen.Django ORM: Ermitteln Sie dynamisch einen anderen Tabellennamen nach einem Feldwert
Ich habe Modelle hier:
class Task(models.Model):
deliver = models.ForeignKey(settings.AUTH_USER_MODEL, blank=False, related_name='task')
tasktype = models.PositiveSmallIntegerField(db_index=True)
description = models.CharField(max_length=500, null=True, blank=True)
delivertime = models.DateTimeField(default=now,db_index=True)
deadlinetime = models.DateTimeField(null=True,db_index=True)
relatedresourceid = models.PositiveIntegerField(null=True)
suggestspendtime = models.PositiveIntegerField(null=True)
subjectid = models.PositiveIntegerField(null=True)
class Lesson(models.Model):
name = models.CharField(max_length=200,null=True,blank=True)
class Exam(models.Model):
name = models.CharField(max_length=200,null=True,blank=True)
So, hier bin Abfrage von Task-Modell will, was mehr ist, für jede Aufgabe Objekt in queryset:
Ich möchte einen Wert mit Schlüssel "name" erhalten aus Lesson oder Exam-Modell, dh für jedes Task-Objekt, wenn tasktype 1 ist, dann Name Wert aus Lesson-Modell (pk==relatedresourceid
), wenn tasktype ist 2, dann nehmen Sie es aus Exam-Modell.
Ich benutze Django1.8 und Mysql 5.6
Wer weiß, wie ORM abzufragen?
Danke.
Gehört jede Aufgabe entweder zu einer Lektion oder zu einer Prüfung? In dem realen Problem, das du versuchst zu lösen, meine ich. – trinchet
Ja, jede Aufgabe gehört entweder zu einer Lektion oder zu einer Prüfung. Wenn tasktype 1 ist, ist es Lektion, 2 ist für Prüfung. Und bekommen Lektion oder Prüfung Objekt von relatedresourceid – Wesley
Dann sollten Sie die Situation auf eine andere Art und Weise modellieren, nehmen Sie meine Antwort unter – trinchet