2

我创建了一个自定义后端以在 html 中包含激活电子邮件,而无需编辑 django-registration 代码

(参考django+ 使用 django-registration 以 html 格式发送电子邮件,最后一个答案)

这是存储在 中的后端,例如存储在中的core/registration/backends/htmldefault/__init__.pyDefaultBackendregistration/backends/__init__.py

from registration.forms import RegistrationForm
from core.models import HtmlRegistrationProfile

class HtmlDefaultBackend(object):
   #etc same as DefaultBackend but using HtmlRegistrationProfile instead of RegistrationProfile

这是我的 urls.py

urlpatterns = patterns('',
    #...
    url(r'^accounts/register/$', register, {'backend': 'core.registration.backends.htmldefault.HtmlDefaultBackend','form_class': UserRegistrationForm}, name='registration_register'),
    url(r'^accounts/', include('registration.urls')),
    #...
)

但我明白了

ImproperlyConfigured at /accounts/register/

Error loading registration backend core.registration.backends.htmldefault: "No module named registration.backends.htmldefault"

被扔/registration/backends/__init__.py in get_backend, line 27

我要问的是..是否可以在注册包之外有一个自定义的 django-registration 后端?或者它必须像简单和默认后端一样位于 /registration/backends/ 下?

4

1 回答 1

2

有可能的。

  1. 检查您的所有文件夹(核心、注册、后端、htmldefault)是否都有__init__.py(可以为空)。

  2. 核心文件夹在项目目录中?

于 2012-04-25T15:44:07.697 回答