我试图将一系列词典保存到Django中的模型中。 字典应该在模型中创建唯一条目,或者如果唯一ID已经存在则更新现有条目。要做到这一点,我使用update_or_create()方法。但是,使用默认值传入dict值,有时如果缺少特定键,这将导致错误。 如何处理可能丢失的密钥。 例如entity_name_X并不总是存在
创建/更新条目:
supplier, created = Supplier.objects.update_or_create(unique_id=supplier_detail['supplierId'],
defaults={
'name': supplier_detail['supplierName'],
'entity_name_1': supplier_detail[
'supplierNameRegistered1'],
'entity_name_2': supplier_detail[
'supplierNameRegistered2'],
'rating': supplier_detail['supplierRating']})
型号:
class Supplier(models.Model):
unique_id = models.IntegerField(unique=True)
name = models.CharField(max_length=255, unique=True)
entity_name_1 = models.CharField(max_length=255, blank=True)
entity_name_2 = models.CharField(max_length=255, blank=True)
rating = models.CharField(max_length=255)
def __str__(self):
return self.name
答案 0 :(得分:4)
替换:
supplier_detail['supplierNameRegistered1']
使用:
supplier_detail.get('supplierNameRegistered1','')
答案 1 :(得分:2)
您正使用以下方法从表单中提取值:
supplier_detail['fieldName']
如果未找到“fieldName”,则会导致密钥错误。
解决方案:
supplier_detail.get('fieldName','')