我有两种模式:
class Album(models.Model):
album_name = models.CharField(max_length=100)
artist = models.CharField(max_length=100)
class Track(models.Model):
album = models.ForeignKey(
Album, related_name='tracks',
on_delete=models.CASCADE,
null=True
)
order = models.IntegerField()
title = models.CharField(max_length=100)
duration = models.IntegerField()
现在我如何获得带有空集合的Album
集合?
答案 0 :(得分:1)
请阅读文档here。您无法保存模型,其中包含您需要{strong>或的字段,您需要null=True
才能在数据库中保留空字段
models.py
class Album(models.Model):
album_name = models.CharField(max_length=100, null=True)
artist = models.CharField(max_length=100, null=True)
class Track(models.Model):
album = models.ForeignKey(Album, related_name='tracks', on_delete=models.CASCADE, null=True)
order = models.IntegerField(null=True)
title = models.CharField(max_length=100, null=True)
duration = models.IntegerField(null=True)
信息:如果您的数据库是Postgre,建议您在null=True
初始化字段。
获取包含空曲目的专辑列表。您需要先保存与专辑相关的空白曲目(这就是您需要添加null=True
的原因)并执行以下查询:
Album.tracks.all()
此查询采用您选择的相册,并选择所有拥有此相册的相关名称的曲目。因此,结果是查询具有相册具有密钥的曲目列表。
答案 1 :(得分:1)
尝试使用isnull:
i