1

我面临着烦人的问题..我试图用自定义字段扩展用户注册...如下

导入 hashlib 导入日期时间 从 django.db 导入 hmac 导入模型

from django.contrib.auth.models import User
from ecpCommon.models import StateModel
from ecpCommon.enum import enumauto
from ecpPayments.models import PaymentCard
from registration.signals import user_registered
from apps.ecpUser.models import UserProfile
from apps.ecpMerchant.forms import RegistrationFormEx


   class MerchantProfile(StateModel):
      user = models.OneToOneField(UserProfile, related_name="merchant_profile")
      payment_card = models.OneToOneField(PaymentCard, related_name="merchant_profile")
      current_state = models.IntegerField('State', choices=STATE_CHOICES)
      name = models.CharField('Merchant Name', max_length=64)

      def user_created(sender, user, request, **kwargs):
            form = RegistrationFormEx(data=request.POST)
            new_user = User.objects.get(username=request.POST['username'])
            digest=hmac.new("qnscAdgRlkIhAUPY44oiexBKtQbGY0orf7OV1I50", str(request.POST['password1']),hashlib.sha1).hexdigest()
            new_profile = UserProfile(user=new_user,api_key=digest)
            new_profile.save()
            #now add other fields including password hash as well
            uid = new_profile.id

            merchant_profile = MerchantProfile(user_id=uid,
                create_time=datetime.datetime.now(),
                modified_time=datetime.datetime.now(),
                payment_card_id=uid,
                current_state=1,
                name=request.POST['name'],
                 )
            merchant_profile.save()

我的表格如下

from django import forms
from registration.forms import RegistrationForm
from django.utils.translation import ugettext_lazy as _
from registration.models import RegistrationProfile
from apps.ecpMerchant.models import Category

class RegistrationFormEx(RegistrationForm):
    #ADD ALL CUSTOM FIELDS BELOW
    name=forms.CharField()

但它显示以下错误日志.. 早些时候它正在工作.. 后来错误来了.. 我在具有其他表的模型中进行了一些修改......但是它如何影响这个注册

C:\Python27\Lib\site-packages\django\bin\ecp>manage.py runserver
Validating models...

Unhandled exception in thread started by <bound method Command.inner_run of <dja
ngo.contrib.staticfiles.management.commands.runserver.Command object at 0x02DC0A
B0>>
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.
py", line 91, in inner_run
    self.validate(display_num_errors=True)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 266,
 in validate
    num_errors = get_validation_errors(s, app)
  File "C:\Python27\lib\site-packages\django\core\management\validation.py", lin
e 30, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "C:\Python27\lib\site-packages\django\db\models\loading.py", line 158, in
 get_app_errors
    self._populate()
  File "C:\Python27\lib\site-packages\django\db\models\loading.py", line 67, in
_populate
    self.load_app(app_name)
  File "C:\Python27\lib\site-packages\django\db\models\loading.py", line 88, in
load_app
    models = import_module('.models', app_name)
  File "C:\Python27\lib\site-packages\django\utils\importlib.py", line 35, in im
port_module
    __import__(name)
  File "C:\Python27\Lib\site-packages\django\bin\ecp\apps\ecpMerchant\models.py"
, line 10, in <module>
    from apps.ecpMerchant.forms import RegistrationFormEx
  File "C:\Python27\Lib\site-packages\django\bin\ecp\apps\ecpMerchant\forms.py",
 line 5, in <module>
    from apps.ecpMerchant.models import Category
  File "C:\Python27\Lib\site-packages\django\bin\ecp\apps\ecpMerchant\models.py"
, line 10, in <module>
    from apps.ecpMerchant.forms import RegistrationFormEx
ImportError: cannot import name RegistrationFormEx
4

1 回答 1

4

循环导入...

您有导入表单的表单导入模型。

于 2012-08-03T02:48:53.630 回答