【发布时间】:2019-01-24 16:11:11
【问题描述】:
我需要计算导演执导的“电影”(Peliculas)的数量。电影和导演是不同的类别。多亏了一位 stackoverflow 用户,我才能从模板中做到这一点,但我认为当我们谈论两个模型类时可能会有所不同。
我想在 Director 中创建一个函数,告诉我他做了多少部电影,但我不知道如何从“Director”中调用“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_peliculas
class 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
)
我怎样才能做到这一点?
【问题讨论】:
-
在您的 sn-p 中包含不相关的代码无助于回答问题。你只关心外键。
-
另外,我看到你今天两次问了同样的问题。你不应该这样做。如果您希望回答您问题的人为您解决问题,您应该发表评论。如果您对答案不满意,请不要接受。但是你不应该做的是创建重复的问题。 SO 中的审核过程会阻止和惩罚此类行为。
-
您的问题的答案不仅有据可查,而且与您上一个问题的答案完全相同:您只需要使用反向关系即可。
-
感谢您的第一个建议。下次会小心点。
-
关于第二个,我可以告诉你,它是相同的解决方案,但不是同一个问题。也许对于了解 django 的人来说很容易,但对于刚开始的人来说并不容易。