특정 상태의 개체를 편집해야하는 모델이 있습니다.개체를 다시 저장하는 올바른 방법은 무엇입니까?
post_save 신호를 사용하여 주어진 상태를 식별 할 수 있으며 거기에서 지정된 방법을 실행할 수 있습니다.
내 문제는 이제 이러한 메서드에서 끝난 끝없는 save-loop가 발생하여 개체를 저장해야한다는 것입니다. 이런 종류의 상황을 처리하는 데 '올바른 방법'이 있습니까? 아니면 악조건 또는 악화일까요?
을 신호에 연결된 방법 내부 :
signals.post_save.disconnect(YourModel.your_custom_method, sender=YourModel)
# Do your stuff
instance.save()
signals.post_save.connect(YourModel.your_custom_method, sender=YourModel)
루프의이 종류를 방지하기 위해
감사하지만, 죄송합니다, 아마도 내가 나쁜 해결의 나의 전망을 언급해야합니다. 이것은 가장 직접적인 접근 방식으로 나를 공격하지 않습니까? – BSG
모델 안에 배치하는 데는 문제가 없습니다. 그것은 정말로 정상을 넘어서는 것처럼 보이는 신호의 단절이지만, 이것을 다루는 '올바른'방법으로 간주됩니다. – BSG
음, 어떤 사람들은 save()를 오버라이드하는 대신 신호를 사용하지 못하는 경향이 있으며, 그렇지 않은 경우 분리/재 연결은 save() 오버라이드를 제외하고는 저장 방법을 제외하고는 내 지식 만이 유일한 방법입니다. 문서에 명시 적으로 설명되어 있지는 않지만이 문제와 관련하여 다른 점은 없습니다. – Ambroise