0
djangoプロジェクトでjinja2テンプレートエンジンを使用しています。私は設定で対応する変更を加えた:jinja2テンプレートエンジンでdjangoをレンダリングする
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [os.path.join(PROJECT_DIR.child("templates"), ''),],
'OPTIONS': {
'environment': 'web_services.settings.jinja2.environment',
}
},
]
と環境はここからロードされます。
from django.contrib.staticfiles.storage import staticfiles_storage
from django.core.urlresolvers import reverse
from jinja2 import Environment
def environment(**options):
env = Environment(**options)
env.globals.update({
'static': staticfiles_storage.url,
'url': reverse,
})
return env
私は今、テンプレートでDjangoのフォームのレンダリングに問題があります。私は、次のLoginForm持っている:私は次のエラーを取得する私は私のレンダリングされたテンプレートには、この
<form method="post" name="{{ url('auth:login') }}">
<div class="form-1-field">
{{ LoginForm.email }}
{{ LoginForm.password }}
</div>
</form>
のようなこのDjangoのフォームを使用したテンプレートで
class LoginForm(forms.Form):
email = forms.EmailField(
widget=forms.TextInput(
attrs={'class':'form-control', 'placeholder':'email',
'required':'True', 'max_length':'80'}
), label='Email address'
)
password = forms.CharField(
widget=forms.PasswordInput(
attrs={'class':'form-control', 'placeholder':'password',
'required':'True', 'max_length':'80', 'render_value':'False'}
), label="Password"
)
を{{ no such element: django.forms.forms.DeclarativeFieldsMetaclass object['email'] }}
なぜそれがそうであるとどのようにすることができます私はこれを解決する?
編集
間違った見方をしました。
class IndexAccounts(View):
def get(self, request):
if request.user.is_authenticated():
return redirect(reverse('home:index'))
return render(request, 'login.jinja2', {'LoginForm': LoginForm})
あなたはビューをしてください提供してもらえますか?そしてあなたが 'environment()'と呼ぶ場所? – vmonteco
@vmonteco上記のビューを提供しました。明示的に 'environment()'を呼び出す必要がありますか?私が[docs](https://docs.djangoproject.com/es/1.9/topics/templates/#django.template.backends.jinja2.Jinja2)から理解したように、私はちょうど 'TEMPLATES'のオプションに参照を入れる必要があります設定 – AmirM
私の悪い、それはあなたが正しいようです。あなたは完全なトレースバックを提供できますか? – vmonteco