개체 생성시 Django 신호 (예 : post_save
또는 post_init
)를 선택적으로 억제하거나 특정 매개 변수를 보낼 수 있는지 궁금합니다.Django에서 post_save (또는 other) 신호를 선택적으로 억제 할 수 있습니까?
내가 갖고있는 것은 User
개체로 내 코드에서 다양한 방식으로 생성 될 수 있습니다. 따라서 각각 맞춤형 개체를 각 User
에 자동으로 할당하려면 post_save
신호를 사용합니다. 그러나 특정 경우에는 생성 된 Profile
개체에 바인딩하려는 추가 정보가 있습니다. 인수를 인수로 post_save
신호로 전달하는 것은 좋지만 가능하지는 않습니다.
다른 옵션은 수동으로 Profile
개체를 만드는 것입니다,하지만 나는 그 User
저장 한 후, 그렇지 않으면 Profile
가 User
인스턴스에 바인딩 할 수 없습니다 필요가있다. 그러나 User
인스턴스를 저장하면 신호로 호출되는 함수를 통해 또 다른 Profile
이 생성됩니다.
오류가 발생하므로 방금 만든 Profile
개체를 가져올 수 없습니다. 어떤 충고?
업데이트 : 나는 그것이 저장 될 createUserProfile 방법에 signup
방법에 변수 extra_param
을받을 수 있나요 어떻게
def createUserProfile(sender, instance, created, **kwargs):
if created:
profile, created = Profile.objects.get_or_create(user=instance)
if extra_param:
profile.extra_param = extra_param
profile.save()
post_save.connect(createUserProfile, sender=User)
def signup(request):
...
extra_param = 'param'
user.save()
: 여기
이 가능한 상황의 예입니다 Profile
개체의 일부로?
+1. 나는 이것에 대한 답을 알고 싶다. – PeanutButterJelly