0

APP 생성시 Fixtures 또는 SQL을 사용하는 Django 용 문서를 읽었습니다 . 그러나 새로운 사용자가 추가 될 때마다 동일한 조명기를 추가하려고합니다. 나는 이것을하는 쉬운 방법을 보지 않고있다. signals.py는 그것을 할 수있는 방법 일지 모르지만 Fixture가 ID없이 추가되었는지 확인하는 방법을 알 수는 없습니다.새로운 사용자가 생성 될 때마다 모든 사용자가 동일한 사용자의 레코드에 대한 "시작 키트"를 만들고 싶습니다.

기구의 문서 : 예를 들어 https://docs.djangoproject.com/en/dev/howto/initial-data/

는 각 사용자에 대한 시작 작업을 제안 5 개 작업이 있습니다. 따라서 새 사용자가 생성 될 때마다 새 사용자 계정에 추가 된 작업을 원합니다. 작업에는 FK가 있습니다.

이 작업을 수행하는 방법에 대한 제안은 열려 있습니다.

답변

0

실제로는 매우 쉬운 방법입니다.

어딘가에 초기 데이터 dicts를 만드십시오. 어떤 논리적 인 장소도 좋습니다.

신호를 만들기 : https://docs.djangoproject.com/en/dev/ref/signals/#post-save

설정 보낸 클래스를 django.contrib.auth.models.User에 신호 접수가 호출

방법을 매개 변수 중 하나로 객체 인스턴스. 이 신호에서 유감스럽게도 사용자가 새로운 사용자인지 검사 할 방법이 없으므로 외부 키를 통해 사용자에게 "시작 키트"모델이 연결되어 있는지 확인해야합니다. 그렇지 않은 경우 초기 데이터를 기반으로 자신의 모델을 만듭니다.

또 다른 방법은 django.contrib.auth.models.User를 확장하고 pk없이 사용자를 저장할 때 호출되는 고유 한 사용자 정의 신호를 저장하는 것입니다. 이 경우 신호가 호출 될 때마다 새로운 "시작 키트"를 만들어야합니다.

+0

첫 번째 제안을 좋아합니다. 더 휴대 성이 좋습니다. 나는 그걸 가지고 놀거야. 감사! –