django update和create外键时出现问题

 数据如下,需要进行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字段来找外键的,advertisement_id不存在


把数据改为

        my_data_dict = {
            "advertisement": adsId,
            ......
   }
保存时ok

但create时肯定会出问题,报错:

Cannot assign "u'6'": "JournalAd.advertisement" must be a "Advertisement" instance.

记录一下,以后要注意两者区别

你可能感兴趣的:(django)