Django 관리 인터페이스에서 항목을 복제하는 방법이 있습니까?
관리 인터페이스에서 기존 목록을 복제하는 기능을 쉽게 추가 할 수있는 방법이 있는지 궁금하십니까?
데이터 입력시 많은 항목이 일반 데이터를 다른 항목과 공유하는 상황에 직면했습니다. 시간을 절약하기 위해 기존 목록을 빠르게 복제하고 변경된 데이터 만 변경하는 것이 좋습니다. 더 나은 모델 구조를 사용하는 것은 데이터의 중복을 줄이는 한 가지 방법이지만, 나중에 중복 된 데이터를 개별적으로 변경해야하는 상황이있을 수 있습니다.
이것을 ModelAdmin에 추가하기 만하면 다른 이름으로 저장할 수 있습니다 .
save_as = True
이렇게하면 "저장 및 다른 항목 추가"단추가 "다른 이름으로 저장"단추로 바뀝니다. "다른 이름으로 저장"은 개체가 이전 개체가 아닌 새 개체 (새 ID 사용)로 저장됨을 의미합니다.
여기에 더 나은 (기본 제공되지는 않음) 솔루션이 있습니다.
https://github.com/RealGeeks/django-modelclone
README에서 :
Django Admin에는
save_as
변경 페이지에 새 버튼을 추가하여 해당 객체의 새 인스턴스를 저장 하는 기능이 있습니다.이 기능이 작동하는 방식이 마음에 들지 않습니다. 해당 링크를 클릭하자마자 원본 개체의 동일한 복사본을 저장하고 (유효성 검사 오류가 발생하지 않는 경우) 작은 변경 작업을 잊은 경우 새 개체에서 원하는 것은 기존 개체의 복제본으로 끝날 것입니다.
반면에 django-modelclone은 기본적으로 양식을 미리 채우는 중간보기를 제공합니다. 따라서 새 인스턴스를 수정 한 다음 저장할 수 있습니다. 또는 부작용없이 그냥 가십시오.
이 방법을 적용 할 수도 있습니다 : https://stackoverflow.com/a/4054256/7995920
제 경우에는 '이름'필드에 고유 한 제약 조건이 있으면이 작업이 작동하며 모든 형식에서 요청할 수 있습니다.
def duplicate_jorn(modeladmin, request, queryset):
post_url = request.META['HTTP_REFERER']
for object in queryset:
object.id = None
object.name = object.name+'-b'
object.save()
return HttpResponseRedirect(post_url)
'IT TIP' 카테고리의 다른 글
AngularJS 지시문 전달 문자열 (0) | 2020.11.27 |
---|---|
CLion : xcode에서와 같이 헤더와 구현 파일 사이를 전환하는 키보드 cmd (0) | 2020.11.27 |
PHP에서 HTTP에서 HTTPS로 전환 할 때 세션 손실 (0) | 2020.11.27 |
CSS에서 정렬되지 않은 목록을 쉼표로 구분 된 텍스트로 스타일링하는 방법 (0) | 2020.11.27 |
fromPromise가 Observable 유형에 존재하지 않습니다. (0) | 2020.11.26 |