gpt4 book ai didi

django 外键保存

转载 作者:行者123 更新时间:2023-12-04 00:01:21 25 4
gpt4 key购买 nike

我有这样的模型。

class Mp3(models.Model):
title=models.CharField(max_length=30)
artist=models.ForeignKey('Artist')

这是艺术家模型的样子:
class Artist(models.Model):
name=models.CharField(max_length=100,default="Unknown")

我已经创建了 id 为 1 的艺术家。如何创建分配给该艺术家的 mp3?(我需要它来进行这样的查询,例如。
mp3=Mp3.objects.get(id=50)
mp3.artist

)我试过这样的
newMp3=Mp3(title="sth",artist=1)

但我得到了比
ValueError: Cannot assign "1": "Mp3.artist" must be a "Artist" instance.

我理解错误,但仍然不知道如何解决这个问题。谢谢你的帮助
此致

最佳答案

我认为从数据库中获取艺术家只是为了将其添加到 Mp3 模型中是不必要的,如果您已经拥有 艺术家编号 你应该做这样的事情:

new_mp3 = Mp3(title='Cool song', artist_id=the_artist_id)
new_mp3.save()

请注意 _id 在艺术家参数中,Django 将外键 id 存储在由 field_name 加 形成的字段中。 _id 这样您就可以将外键 id 直接传递给该字段,而无需再次访问数据库来获取艺术家对象。

如果代码中的其他内容不需要艺术家对象,则应使用此方法。

关于django 外键保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3953206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com