django의 .update()
方法进行更新。该字段是一个 jsonfield。我通常会在这个领域保存一本字典。例如{"test": "是", "prod": "否"}
모델은 다음과 같습니다:
으아악다음 쿼리를 사용하여 사전 내부의 키를 업데이트할 수 있습니다(이것은 훌륭하게 작동합니다):
으아악이제 질문은 위 쿼리에 표시된 대로 .update()
를 사용하여 여러 키(내 경우에는 2개)를 한 번에 업데이트할 수 있는 방법이 있습니까?
post_save 신호 함수 호출을 피할 수 있도록 .save()
대신 .update()
方法而不是 .save()
메서드를 사용하고 싶습니다.
면책조항: 보기 흉해 보일 것입니다.
저는 과거에 Django가 아닌 순수 SQL을 사용했지만 이 작업을 수행한 적이 있습니다. 아이디어는 재귀적으로 호출하는 것입니다 jsonb_set()
. 각 호출은 키를 설정합니다.
SQL에서 키를 설정하려면 {"test":"yes","prod":"no"}
다음을 수행하세요.
jsonb_set에는 두 개의 중첩 호출이 있으며 가장 안쪽 호출이 사용되고 meta_data
가장 바깥쪽 호출이 가장 안쪽 결과를 받습니다.
그래서 django와 동등한 것은 다음과 같습니다(참고, 테스트되지 않음):
으아악또는 한 번에 하나의 항목을 설정하여 엉망진창을 반환하는 재귀 함수를 만들 수도 있습니다.
으아악어린이를 업데이트하는 '__'
기능을 참고하세요.
위 내용은 Django의 ORM을 사용하여 .update() 메서드를 사용하여 JsonField의 여러 키 값을 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!