数据如下,需要进行update和create操作, advertisement为外键,adsId为外键id
if journal_id:
journalad = JournalAd.objects.filter(id=journal_id).update(**(my_data_dict))
else:
my_data_dict.update({"journal_id": journal_id})
journalad = JournalAd.objects.create(**(my_data_dict))
journalad.save()
当数据为
my_data_dict = {
"advertisement_id": adsId,
......
}update操作时报错:
JournalAd has no field named 'advertisement_id'
看源代码发现update时是按models字段<django.db.models.fields.related.ForeignKey: advertisement>来找外键的,advertisement_id不存在
把数据改为
my_data_dict = {
"advertisement": adsId,
......
}保存时ok
但create时肯定会出问题,报错:
Cannot assign "u'6'": "JournalAd.advertisement" must be a "Advertisement" instance.记录一下,以后要注意两者区别
在Django中处理外键update和create操作时遇到困难。源代码显示,update操作通过models字段<django.db.models.fields.related.ForeignKey: advertisement>查找外键,但adsId作为外键ID未被正确识别。而在尝试create时,出现了错误导致操作失败。
1269

被折叠的 条评论
为什么被折叠?



