0

ログインフォームをサブクラス化して、ログインごとに追加のフィールドを追加しようとしていますが、表示できません。プロジェクトにメザニンを使用しています。

ここに私のforms.pyがあります:

from mezzanine.accounts.forms import LoginForm
from django import forms


CLINICS = (
('', '——–'),
('1', 'Main'),
('2', 'Secondary'),
('3', 'Backend'),
       )


class myLoginForm(LoginForm):
    clinic_select = forms.ChoiceField(choices=CLINICS)

これは私のviews.pyです:

from django.contrib.auth import (authenticate, login as auth_login,
                                           logout as auth_logout)
from django.contrib.auth.decorators import login_required
from django.contrib.messages import info, error
from django.core.urlresolvers import NoReverseMatch
from django.http import Http404
from django.shortcuts import get_object_or_404, redirect, render
from django.utils.translation import ugettext_lazy as _

from accounts.forms import myLoginForm
from mezzanine.utils.urls import login_redirect


def login(request, template="templates/accounts/account_login.html"):
    """
    Login form.
    """
    form = myLoginForm(request.POST or None)
    if request.method == "POST" and form.is_valid():
        authenticated_user = form.save()
        info(request, _("Successfully logged in"))
        auth_login(request, authenticated_user)
        return login_redirect(request)
    context = {"form": form, "title": _("CaregoLite Log In")}
    return render(request, template, context)

そして、これは私の urls.py です:

from django.conf.urls import patterns, include, url
from django.contrib import admin
from mezzanine.core.views import direct_to_template
from django.views.generic.base import View

url("^$", "accounts.views.login", name="home"),
#url("^$", direct_to_template, {"template": "index.html"}, name="home"),

なんらかの理由で、このサブクラス化されたフォームを表示することはできません。私のデバッグでは、実行された唯一の要求変数が mezzanine.accounts.views.login に対するものであることがわかります。

私のコードで何かおかしなことはありますか?

ありがとう。

4

1 に答える 1

1

上記の例では、この時点で SO の外で議論してきたものとは大きく異なりますが、URL パターンは「accounts.views.login」を呼び出しています。views.py がプロジェクトのルートにある場合は、おそらく appname.views.login または views.login である必要があります。

于 2013-05-23T18:57:52.873 に答える