Signale sind nicht der richtige Weg, um damit umzugehen. Der richtige Weg besteht darin, diese Logik in Ihre Anmeldefunktion einzufügen:
def sign_up(request):
form = SignupForm(request.POST or None, request.FILES or None)
if form.is_valid():
user = User.objects.create_user(form.cleaned_data['usern_name'],
form.cleaned_data['email'],
form.cleaned_data['password'])
user.save()
if form.cleaned_data['user_type'] == 'consumer':
profile = ConsumerProfile()
profile.some_field = 'some_value'
if form.cleaned_data['user_type'] == 'provider':
profile = ProviderProfile()
profile.some_field = 'some_value'
if profile:
profile.user = user
profile.save()
user.save()
Warum nicht einen Parameter "kind = UserTypes.CONSUMER" oder etwas Ähnliches in Ihre Funktion aufnehmen? – camden
@camdenb, ich bin mir nicht sicher, wo das hingestellt wird. Kannst du es bitte etwas weiter erklären? – Newtt
Die 'UserTypes' sind nicht notwendig, da Sie immer nur einen String (' kind = "Consumer" ') an die Funktion übergeben können, der erste ist weniger anfällig für Tippfehler. Ich fürchte, ich verstehe deine Frage nicht ganz. Wann würden Sie 'create_user_profile' aufrufen? – camden