Django F()
표현식으로 할당 된 필드의 유효성을 검사하지 못했습니다. 나는 the Django doc에서 변형 예 :Django F() 표현식을 full_clean()과 함께 원자 적 업데이트에 사용할 수 있습니까?
>>> product = Product.objects.get(name='Venezuelan Beaver Cheese')
>>> product.number_sold = F('number_sold') + 1
>>> product.full_clean() # My addition.
>>> product.save()
그리고 나는 점점 해요 : ValidationError: {'number_sold': [u"'(+: (DEFAULT:), 0)' value must be an integer."]}
합니다. 실제로 판매 된 숫자는 정수가 아니지만 django.db.models.expressions.ExpressionNode
의 인스턴스입니다.
이 방법이 있습니까? 모든 모델은 각 저장시 자동으로 full_clean()
을 호출하는 기본 클래스를 확장하며이 기본 클래스는 유지하지만 원자 업데이트를 사용할 수 있습니다.
django 소스에서 full_clean을 해제하고 ExpressionNode 값이 항상 유효하다고 가정하는 구현을 직접 작성해야합니다. –