사용자 정의 post_save 신호를 연결하고 kwargs 집합을 전달하는 쉬운 방법을 찾지 못하는 것으로 보입니다. 의 I는 다음과 같은 (그러나 어떤 kwargs로를 얻을 수 없다)save에서 post_save 신호로 kwargs를 전달하는 방법
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
some_id = kwargs.get('some', None)
other_id = kwargs.get('other', None)
if created:
#do something with the kwargs above...
어떻게 kwargs로 통과 할 수있는 내 사용자 지정 post_save 후크 내부 그리고
def save(self, commit=True):
user = super(CustomFormThing, self).save(commit=False)
#set some other attrs on user here ...
if commit:
user.save()
return user
(지정 양식) 안에 자체를 저장하는 동안
post_save 이벤트에서 저장 하시겠습니까?
처럼 나는 (비 사용자 속성) (장고 사용자 자체에서 격리) 사용자 프로필에 사는 것이 다른 인수 전달에 관심이 있어요. 게시물 저장은 위와 같은 작업을 수행하기에 좋은 장소처럼 보였습니다 ... 외부 변수를 사용할 수 없다는 점만 제외하면. 나는 당신의 제안을 시도 할 것이고, 그것이 작동한다면 post back (post_save 신호 자체에 ** kwargs를 이용하고 싶지만) –
나는 신호가 좋은 생각이라고 생각하지 않는다. 객체가 코드의 다른 부분에서 생성 될 때 (앱 외부에서도 가능함) 신호가 유용합니다. 그러나 당신의 경우에는 객체가 폼 외부에서 생성되면 신호가 쓸모가 없습니다. 그래서 가장 합리적인 방법은 폼의 저장에 직접'User'와 프로파일을 만드는 것입니다. 구현하기 쉽고 나중에 코드를 이해하기 쉽습니다. – DrTyrsa
나는 대부분의 사람들 (ok, 아마도 나)이 postprofile을 만들고 post_save()가 아니라 overridden 된 save() 메소드를 사용한다고 믿는다. 그러나 귀하의 요구 사항은 다를 수 있습니다. 여하튼, 프로필이 이미 생성 되었다면 post_save에서도'instance.get_profile()'을 호출 할 수있다. – alan