2016-06-16 12 views
0

Angenommen, ich habe folgende Modelle:Graf Innen viele zu viele Feld Django

class Analysis(Model): 
    experts = ManyToManyField(Expert, 
           related_name='analysis', 
           through='AnalysisExpert') 


class AnalysisExpert(Model): 
    analysis = ForeignKey(Analysis) 
    expert = ForeignKey(Expert 

    questions = ManyToManyField(Question, through='ExpertQuestion') 

class ExpertQuestion(Model): 
    expert = ForeignKey(AnalysisExpert, related_name="expert_comparisons") 

    question = ForeignKey('Question') 

Es sieht aus wie ich ManyToManyField verschachtelt haben. Analyse -> Experten -> Fragen

Was ist der effizienteste Weg, die Anzahl der Fragen für bestimmte Analyse zu berechnen?

+1

Sind Sie das 'Expert' Modell in Ihrem Beispielcode fehlen, oder haben Sie versehentlich siehe' Expert' in Sie 'Analysis' Modell? – Hybrid

+0

Ich benutze es, aber es enthält keine wichtigen Informationen zu diesem Problem. Benutzer kann auch verwendet werden. –

Antwort

0

Sie können die Anzahl der Fragen für ein einzelnes Analyseobjekt mithilfe von values_list berechnen.

analysis_obj.experts.all().values_list("question").count() 

Above Abfrage unter Modellen getestet:

class Question(models.Model): 
    question = models.CharField(max_length=50) 


class Expert(models.Model): 
    question = models.ManyToManyField(Question, 
           related_name='questions') 

class Analysis(models.Model): 
    experts = models.ManyToManyField(Expert, 
        related_name='analysis') 
+0

Hast du es getestet? Es funktioniert nicht. Keyword-Frage kann nicht in Feld aufgelöst werden. –

+0

Ja, können Sie Ihre Fragen bitte mit Experten- und Fragenmodellen aktualisieren, die ich erneut testen werde. – ravigadila

+0

Was meinst du update? –

Verwandte Themen