Python Django,将字典保存到可能缺少键的模型
我正在尝试将一系列词典保存到Django中的模型中。 字典应该在模型中创建一个唯一的条目,或者在唯一id已经存在的情况下更新现有条目。为此,我使用update_或_create()方法。但是,使用默认值传递dict值,如果缺少特定键,有时会导致错误。 如何处理可能丢失的密钥。 e、 g.实体名称并不总是存在 创建/更新条目:Python Django,将字典保存到可能缺少键的模型,python,django,Python,Django,我正在尝试将一系列词典保存到Django中的模型中。 字典应该在模型中创建一个唯一的条目,或者在唯一id已经存在的情况下更新现有条目。为此,我使用update_或_create()方法。但是,使用默认值传递dict值,如果缺少特定键,有时会导致错误。 如何处理可能丢失的密钥。 e、 g.实体名称并不总是存在 创建/更新条目: supplier, created = Supplier.objects.update_or_create(unique_id=supplier_detail['suppl
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
在视图中,替换为:
supplier_detail['supplierNameRegistered1']
与:
在视图中,替换为:
supplier_detail['supplierNameRegistered1']
与:
您正在使用以下方法从表单中提取值:
supplier_detail['fieldName']
如果未找到“fieldName”,这将导致键错误
解决方案:
supplier_detail.get('fieldName','')
您正在使用以下方法从表单中提取值:
supplier_detail['fieldName']
如果未找到“fieldName”,这将导致键错误
解决方案:
supplier_detail.get('fieldName','')
你犯了什么错误?KeyError?对于空白=True的字段,您可以执行供应商详细信息获取('field\u name',''),因此这会将空值设置为field,并且不会引发KeyError。您得到了什么错误?KeyError?对于空白=True的字段,您可以执行supplier\u detail.get('field\u name',''),因此这会将空值设置为field,并且不会引发KeyError。