2012-05-09 3 views
0

Django의 list_editable 기능을 사용하여 관리자가 한 번에 전체 항목을 빠르게 업데이트하거나 단일 항목을 신속하게 업데이트 할 수 있습니다. 그러나이 사이트에는 여러 명의 관리자가 있습니다.Django의 list_editable에서 여러 사용자와 수정 충돌 방지

주된 관심사 : 다른 관리자가 다른 컴퓨터에서 동일한 페이지의 D (E, F) 레코드를 편집하는 동안 한 관리자가 A (B, C) 레코드를 편집하면 어떻게됩니까? 각 사용자가 "저장"을 클릭하거나 제출 된 수정 된 레코드 일 때 모든 보이는 레코드에 대한 정보가 제출 되었습니까? 즉, 두 번째 제출자가 다른 레코드를 편집 중이지만 첫 번째 제출자의 데이터를 덮어 쓰시겠습니까?

문제가 적고 내가 살 수있는 문제 : 두 사용자가 동일한 레코드를 편집하면 어떻게됩니까? Django가 제 관심사를 처리 할 장소가있는 경우에도 두 번째 제출이 첫 번째 우선 적용을 무시한다고 가정하지만 Django가 실수로 여기에서 실수를 막는 것이 좋을 것입니다.

+1

1.4에서 수정 된 인스턴스가 아니라 전체 세트가 수정되므로 예, 마지막으로 저장 한 사람은 상태를 설정합니다 ... –

답변

1

장고에는 내부 충돌 방지 시스템이 없습니다. 그러나 django-reversion을 사용하거나 관리자의 get_changelist_formssaving forms을 해킹하여 다른 사용자의 변경 사항을 수동으로 병합하거나 객체가 동일하지 않은 경우 양식 유효성 검사를 실패로 변경할 수 있습니다.