我需要得到導(dǎo)演導(dǎo)演的“電影”(Peliculas)的數(shù)量。電影和導(dǎo)演是不同的課程。感謝一位 stackoverflow 用戶,我能夠從模板中做到這一點(diǎn),但我認(rèn)為當(dāng)我們談?wù)搩蓚€模型類時可能會有所不同。我想在 Director 中創(chuàng)建一個函數(shù),告訴我他做了多少部電影,但我不知道如何從“Director”中調(diào)用“Peliculas”class Director(models.Model): nombre = models.CharField( max_length=100 ) fecha_nacimiento = models.DateField() fecha_defuncion = models.DateField( 'Fallecido', null=True, blank=True, ) foto = models.ImageField( upload_to='images/directores/', default='images/directores/sin_foto.jpg' ) def get_num_peliculas(self): n_peliculas = Pelicula.object.all().count #NOT WORKING return n_peliculasclass Pelicula(models.Model): titulo = models.CharField( max_length=100 ) url_trailer = models.CharField( max_length=100 ) fecha = models.DateField() notas_posibles = ( (1, 1), (2, 2), (3, 3), (4, 4), (5, 5) ) nota = models.IntegerField( default=3, choices=notas_posibles ) sinopsis = models.TextField( max_length=400, default="Sin sinopsis" ) caratula = models.ImageField( upload_to='images/peliculas/caratulas', default='images/peliculas/caratulas/sin_caratula.jpg' ) imagen_promocional = models.ImageField( upload_to='images/peliculas/imagenes_promocionales', default='images/peliculas/imagenes_promocionales/sin_imagen.jpg' ) genero = models.ManyToManyField( Genero, blank=True, related_name='genero' ) director = models.ForeignKey( Director, on_delete=models.SET('Sin Director') ) actores = models.ManyToManyField( Actor, blank=True )我怎樣才能做到這一點(diǎn)?
1 回答

溫溫醬
TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個贊
您可以反向查詢關(guān)系pelicula_set,例如:
class Director(models.Model):
# ...
def get_num_peliculas(self):
return self.pelicula_set.count()
如果您related_name=...在ForeignKey指向主管中指定了 a ,那么這就是反向關(guān)系的名稱。
或者,您可以.filter(..)使用查詢集,這基本上就是這種反向關(guān)系所發(fā)生的情況:
class Director(models.Model):
# ...
def get_num_peliculas(self):
return Pelicula.objects.filter(director=self).count()
添加回答
舉報
0/150
提交
取消