数据如下,需要进行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.
记录一下,以后要注意两者区别