1
내가
this에 따라 여러 개체의
slug
필드에서
'blog/'
문자열을 제거 할
와 객체 및 this 문서 :장고 : 업데이트 여러 정규식
>>> import re
>>> from django.db.models import F
>>> p = re.compile('blog/')
>>> Blog.objects.update(slug=p.sub('', F('slug')))
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: expected string or buffer
나는 마지막 문자열로 str()
을 추가했는데, 그것은없이 통과 오류 :
>>> Blog.objects.update(slug=p.sub('', str(F('slug'))))
하지만 모든 개체에 대한 slug
필드에 (DEFAULT:)
삽입합니다.
제안 사항?
답변 해 주셔서 감사합니다. 그런데 내가 왜 그럴 수 없다고하니? [update() method] (https://docs.djangoproject.com/en/dev/topics/db/queries/#updating-multiple-objects-at-once)는 SQL로 직접 변환되고' save()'메소드 나 신호로''post_save' 시그널을 출력합니다. 나는 내 코드를 테스트했고're.sub()'를 추가 할 때까지 작동한다. –
음, 정확하게're.sub()'는 파이썬이므로 SQL로 변환 할 수 없습니다. –
듣는 것이 슬프다. 이 코드는 약 15 분 동안 13K 레코드를 반복합니다. 설명해 주셔서 감사합니다. –