Question

Hé, Maintenant im travaillant sur cette base dmitko tutoriel sur l'extension django-inscription après , tout allait bien passé, tout le Je ne peux pas reçu le signal user_registered correctement.

forms.py

from django import forms
from registration.forms import RegistrationForm
from models import UserProfile

class UserProfileForm(RegistrationForm):
   fullname = forms.CharField(max_length=200)
   address = forms.CharField(max_length=200)

urls.py

    from django.conf.urls.defaults import *
    from registration.views import register
    from forms import UserProfileForm
    import regbackend
    urlpatterns = patterns('',
      url(r'^accounts/register/$', register, {'backend': 'registration.backends.default.DefaultBackend','form_class': UserProfileForm}, name='registration_register'),
 (r'^accounts/', include('registration.backends.default.urls')),
    )

regbackend.py

from forms import UserProfileForm
from models import UserProfile

def user_created(sender, user, request, **kwargs):
   form = UserProfileForm(request.POST)
   data = UserProfile(user=user)
   data.fullname = form.cleaned_data["fullname"]
   data.address = form.cleaned_data["address"]
   print "USER CREATED SIGNALS!"
   data.save()

from registration.signals import user_registered
user_registered.connect(user_created)  
print "REGBACKEND!"

Je peux obtenir tous fonctionne bien mais je ne peux pas obtenir mon signal pour se connecter correctement à ma méthode user_created. La méthode d'impression sont juste une façon pour moi de vérifier les codes. Ne peut pas s'user_created à imprimer "Signals USER CRÉÉ!".

Toutes les pensées ??

Était-ce utile?

La solution

L'auditeur du signal doit être lancé avant d'appeler le signal - essayez d'importer ragbackend.py en models.py avant d'enregistrer un signal - si elle va commencer vous avez la moindre idée de travailler sur la solution

.

En outre ne pas utiliser l'impression, utilisez python intégré dans le module d'enregistrement à la place. Vous pouvez également exécuter la session de débogage avec par exemple. ipdb pour voir si le signal est reçu et si l'utilisateur est créé, Ot vous pouvez écrire unité test simple ou doctest pour vérifier que.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top