我使用save()
方法在Django中创建记录。使用相同的save()
方法和主键来更新相应的记录。但是每次我不能指定更新中所有字段的值。这是删除已经存在的数据,我在创建过程中添加了这些数据。那么,通过只指定必需字段来执行部分更新的最佳方法是什么。?
class ApprenticeUsers(models.Model):
uid = models.IntegerField(primary_key = True)
apid = models.CharField(max_length=60, blank=False)
first_name = models.CharField(max_length=64, blank=False)
last_name = models.CharField(max_length=64, blank=False)
({uid:123, apid:"AP12"}, ApprenticeUsers)
这里uid是主键
model
.save()
方法有一个参数update_fields
,您还可以指定保存时更新哪些字段。见https://docs.djangoproject.com/en/1.11/ref/models/instances/#specifying-which-fields-to-save通常的模式是从数据库中检索项目,更新相关字段,然后将其保存回。你错过了第一步,每次都在构建一个新项目。在
请注意,实现您想要的效果的一个更好的方法是使用ModelForm;除了更新之外,它还将负责验证数据是否是应该的。或者,如果这是一个API,您可以使用django rest框架编写一个序列化程序来执行相同的操作。在
相关问题 更多 >
编程相关推荐