Django Simple Captcha - Ошибка в {{ form.as_p }} - объект "DatabaseWrapper" не имеет атрибута "База данных"

Я использую Django 1.6 с mongoengine.

Я только начал пробовать простую капчу, но у меня следующая ошибка.

Как сказано в http://django-simple-captcha.readthedocs.org/en/latest/usage.html

Я установил в env, добавил в Установленные приложения, я не запустил syncdb, потому что я работаю с MongoDB, и это не нужно, и, наконец, я добавил URL (r'^captcha/', include('captcha.urls')), в мой файл приложения URL.

Мой form.py выглядит так:

from django import forms
from captcha.fields import CaptchaField

class PostForm(forms.Form):
    user = forms.CharField(max_length=256)
    password = forms.CharField(widget=forms.PasswordInput)
    email = forms.CharField(max_length=256)
    captcha = CaptchaField()

И мой взгляд:

def post_form_upload(request):
    if request.method == 'GET':
        form = PostForm()
    else:
        # A POST request: Handle Form Upload
        form = PostForm(request.POST) # Bind data from request.POST into a PostForm

        # If data is valid, proceeds to create a new post and redirect the user
        if form.is_valid():
            user = form.cleaned_data['user']
            password = form.cleaned_data['password']
            email = form.cleaned_data['email']
            connect('reborn')
            User.create_user(user,password,email)
            #return HttpResponse("Usuari nou creat")
            return render(request, 'game/welcomeuser.html', {
                'user': user,
            })
    return render(request, 'game/post_form_upload.html', {
        'form': form,
    })

Поэтому, когда форма отображается, она дает мне эту ошибку:

AttributeError at /game/form_upload.html
'DatabaseWrapper' object has no attribute 'Database'

In template /.../post_form_upload.html, error at line 2
'DatabaseWrapper' object has no attribute 'Database'
1   <form action='/game/form_upload.html' method='post'>{% csrf_token %}
2   {{ form.as_p }} <- HERE
3   <input type='submit' value='Submit' />
4   </form>
5   

Что не так с form.as_p? Без этой капчи бегал нормально.

1 ответ

Вам нужно запустить syncdb или перенести или создать таблицу captcha_captchastore по-другому, так как это требуется для простой капчи.

Редактировать: Я, вероятно, ошибаюсь при создании схемы, так как вы правы, что это не требуется.

Но вот идея. Движок Mongoddb использует djangotoolbox, который имеет класс djangotoolbox.db.base.NonrelDatabaseWrapper не было этого атрибута Database до этого коммита (строка помечена) Так что убедитесь, что вы получили правильную версию.

Дайте мне знать, если я ошибаюсь и каким было реальное решение.

Другие вопросы по тегам