用户使用表单django在登录页面上选择语言 [英] User selects language on login page using form django
本文介绍了用户使用表单django在登录页面上选择语言的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个具有以下表单的登录页面:
< form class =login-formname = LoginFormaction ={%url'login'%}method =post>
{%csrf_token%}
< p>
< table>
< tr>
< td> {{form.username.label_tag}}< / td>
< td> {{form.username}}< / td>
< / tr>
< tr>
< td> {{form.password.label_tag}}< / td>
< td> {{form.password}}< / td>
< / tr>
< / table>
< / p>
< input class =button button-smalltype =submitvalue =Login/>
< input type =hiddenname =nextvalue ={{next}}/>
< / form>
< a>英文< / a>
< a>法语< / a>
我有一个如下的forms.py:
$来自django.contrib.auth.forms导入的
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $
$ b username = forms.CharField(label =Username,max_length = 30,
widget = forms.TextInput(attrs = {'class':'form-control','name':'username'})
password = forms.CharField(label =Password,max_length = 30,
widget = forms.TextInput(attrs = {'type':'password','name':'password' class':'form-control'}))
和urls.py看起来像这样:来自django.contrib的url
从django导入admin
从django.conf.urls导入包含。 contrib.auth导入视图作为auth_views
从stellar.forms import LoginForm
从stellar.views import index2
from django.conf .urls.i18n import i18n_patterns
urlpatterns = [
url(r'^ admin /',admin.site.urls),
url(r'^',include('example.urls ')),
url(r'^ login / $',auth_views.login,{'template_name':'login.html','authentication_form':LoginForm},name ='login'),
url(r'^ logout / $',auth_views.logout,{'next_page':'/ login'}),
url(r'^ i18n /',include('django.conf.urls.i18n ')),
]
基本上,如果用户点击英语或法语,的页面应该改变。如何执行此操作?
解决方案
您应该在认证方式之下创建另一个表单,如这个。
{%load i18n%}
< form action ={%url'set_language'%}method =post > {%csrf_token%}
...
按照说明从那里,你会很好!
让我知道如果这样工作。
I have a login page with the following form:
<form class="login-form" name="LoginForm" action="{% url 'login' %}" method="post">
{% csrf_token %}
<p>
<table>
<tr>
<td>{{ form.username.label_tag }} </td>
<td>{{ form.username }}</td>
</tr>
<tr>
<td>{{ form.password.label_tag }}</td>
<td>{{ form.password }}</td>
</tr>
</table>
</p>
<input class="button button-small" type="submit" value="Login" />
<input type="hidden" name="next" value="{{ next }}" />
</form>
<a>English</a>
<a>French</a>
and I have a forms.py that looks like this:
from django.contrib.auth.forms import AuthenticationForm
from django import forms
class LoginForm(AuthenticationForm):
username = forms.CharField(label="Username", max_length=30,
widget=forms.TextInput(attrs={'class': 'form-control', 'name': 'username'}))
password = forms.CharField(label="Password", max_length=30,
widget=forms.TextInput(attrs={'type': 'password', 'name': 'password', 'class': 'form-control'}))
and urls.py that looks like this:
from django.conf.urls import include, url
from django.contrib import admin
from django.contrib.auth import views as auth_views
from stellar.forms import LoginForm
from stellar.views import index2
from django.conf.urls.i18n import i18n_patterns
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('example.urls')),
url(r'^login/$', auth_views.login, {'template_name': 'login.html', 'authentication_form': LoginForm}, name = 'login'),
url(r'^logout/$', auth_views.logout, {'next_page': '/login'}),
url(r'^i18n/', include('django.conf.urls.i18n')),
]
Basically, if the user clicks on English or French the language of the page should change. How do I go about doing this?
解决方案
You should make another form below the authenticated one like this.
{% load i18n %}
<form action="{% url 'set_language' %}" method="post">{% csrf_token %}
...
Follow the instructions from there and you'll be fine!
Let me know if that worked.
这篇关于用户使用表单django在登录页面上选择语言的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文