Ich versuche diesen Weg zu benutzen,

Models.py

class Father(models.Model):
      name = models.CharField(...)

      def last_child_age(self):
          children = self.child.order_by('-pk')
          if len(children) > 0:
             return find_Year(datetime.datetime.now()-children[0].birth_day) 
          return -1


class Child(models.model):
          father = models.ForeignKey(Father, related_name='child')
          birth_day = models.DateTimeField(auto_now_add=True)

Views.py

def get_old_fathers(request):
     father_list = Father.objects.filter(last_child_age__gte=15)

Kehrt zurück:

   Cannot resolve keyword 

Error.

Was ist der richtige Weg, um diese Abfrage anders als nacheinander zu wiederholen?

1
Sphere Due 21 Nov. 2013 im 10:56

2 Antworten

Sie haben Ihr Child-Modell und den last_child_age-Code nicht veröffentlicht, aber so etwas sollte funktionieren:

Child.objects.filter(age__gte=15).prefetch_related('father')
0
Ankit Jaiswal 21 Nov. 2013 im 07:16

last_child_age ist eine Methode, keine Spalte. ORM-Abfragen generieren SQL, und SQL weiß nichts über Ihre Modellmethoden. Wie würde die SQL-Datenbank Ihren Python-Code zurückrufen?

0
bruno desthuilliers 21 Nov. 2013 im 07:58