【发布时间】:2016-10-01 12:34:54
【问题描述】:
我的应用在本地运行时没有问题。但它发生在heroku上。我已成功将我的应用程序部署到heroku,但是当我打开它时(我的DEBUG 仍然是TRUE)它给了我ImportError No module named forms 来自from registration.forms import RegistrationFormUniqueEmail。我对此感到困惑,因为当我开始 heroku run python manage.py shell 并导入 from registration.forms import RegistrationFormUniqueEmail 时,这没什么错误。
urls.py
from myapp.forms import CustomRegistrationForm
from registration.backends.default.views import RegistrationView
urlpatterns = [
url(r'^register/$', logout_required(RegistrationView.as_view(form_class=CustomRegistrationForm)), name='registration_register'),
url(r'^', include('registration.backends.default.urls')),
]
myapp/forms.py
from registration.forms import RegistrationFormUniqueEmail
from .validators import ForbiddenUsernamesValidator
class CustomRegistrationForm(RegistrationFormUniqueEmail):
def __init__(self, *args, **kwargs):
super(CustomRegistrationForm, self).__init__(*args, **kwargs)
self.fields['username'].validators.append(ForbiddenUsernamesValidator)
myapp/validators.py
from django.contrib.auth.models import User
from django.core.exceptions import ValidationError
def ForbiddenUsernamesValidator(value):
forbidden_usernames = ['admin', 'settings', 'news', 'about', 'help', '........']
if value.lower() in forbidden_usernames:
raise ValidationError('This username is forbidden.')
if len(value) < 4:
raise ValidationError('Username must have at least 4 characters.')
这是我的应用程序here。
谢谢。
【问题讨论】:
标签: python django heroku django-registration