سؤال

مرحبا هناك ، الآن ايم العمل هذه القاعدة على dmitko البرنامج التعليمي على تمديد جانغو-تسجيل وظيفة, كل شيء سار على ما يرام, فقط أنا لا يمكن أن تلقى على user_registered الإشارة بشكل صحيح.

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!"

يمكنني الحصول على كل منهم يعمل بشكل جيد ولكن لا يمكنني الحصول على بلدي إشارة إلى الاتصال بشكل صحيح إلى user_created الأسلوب.الأسلوب print هي مجرد وسيلة بالنسبة لي للتحقق من رموز.لا يمكن الحصول على user_created طباعة "المستخدم إنشاء إشارات!".

أي الأفكار??

هل كانت مفيدة؟

المحلول

إشارة المستمع يجب أن تبدأ قبل استدعاء إشارة محاولة استيراد ragbackend.py في models.py قبل التسجيل في إشارة - إذا كان سوف يبدأ العمل لديك فكرة عن الحل.

أيضا لا تستخدم الطباعة استخدام بيثون المدمج في وحدة تسجيل بدلا من ذلك.يمكنك أيضا تشغيل جلسة عمل التصحيح مع ie.ipdb أن نرى إذا كانت الإشارة المستلمة إذا كان المستخدم هو إنشاء ot يمكن كتابة وحدة بسيطة-اختبار أو doctest للتحقق من ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top