python - 无法在 django 中使用 update_or_create 方法将数据发布到数据库
问题描述
我有一个具有多个字段的模型。这是我的views.py:
def person(request):
customer=request.user.customer
if request.method == "POST":
hobbies=request.POST['hobbies']
sports=request.POST['sports']
school=request.POST['school']
swimming=request.POST['swimming']
details=Details.update_or_create(hobbies=hobbies,sports=sports,school=school,swimming=swimming)
details.save()
这是模型.py
class Details(models.Model):
customer=models.ForeignKey(Customer,on_delete=models.SET_NULL,null=True)
swimming=models.CharField(max_length=200,null=False)
sports=models.CharField(max_length=300,null=False)
hobbies=models.CharField(max_length=200,null=False)
school=models.CharField(max_length=200,null=False)
每当客户在 html 表单中输入相应的详细信息时,如果他是第一次输入,并且如果他之前已经输入了详细信息但希望编辑它们,我希望将其保存,我想更新相同的对象而不是创建一个新的。我尝试使用 update_or_create 方法,但它给了我错误。请帮我。谢谢
解决方案
你可以使用这样的东西,所以如果任何字段与关系 customer=request.user 相关联,那么它将更新数据,如果没有,那么它将创建一个新的 details=Details.update_or_create(customer=request .user,默认={爱好=爱好,运动=运动,学校=学校,游泳=游泳})
注意:当您创建、更新查询集的方法时,您不必像做 details.save() 那样保存在查询集中
推荐阅读
- api - 如何通过 newman 明智地使用 csv 文件中的数据以按请求使用?
- azure - 为 eventthub 触发器获取 Azure.WebJobs.Host.Listeners.FunctionListenerException
- python - 对不可变对象的引用的 Python 集合
- c# - 尝试从 IGuild 获取 IGuildUser 时如何修复“Nullpointer Exception”
- jquery - 当用户点击离开链接时如何切换类?
- spring-boot - Spring boot 或 Vertx 或任何其他用于反应式微服务开发的框架
- c++ - 构造Hash Table时特定数字引起的分段错误
- c# - 光标隐藏时移动鼠标
- javascript - 可选的反应路由器参数标记 GET 请求错误?
- javascript - 如何在文档集合中获取数组和映射对象?