【发布时间】:2021-06-11 07:37:10
【问题描述】:
我想从我的客户那里获取语言输入。例如:
<input type="text" name="title" class="form-control" required="" id="en"> # For English Input
<input type="text" name="title" class="form-control" required="" id="fr"> # For French Input
<input type="text" name="title" class="form-control" required="" id="es"> # For Spanish Input
我想将它们作为字典存储为 { 'lang' : 'title', 'lang2' : 'title2', 'lang3' : 'title3' } 对。我使用 Django 作为我的后端。有没有办法可以用 Django 表单做到这一点?
编辑: 我试过了,但它似乎不起作用
def get_title(request):
title = {}
if request.method == 'POST':
form = AddFoodCategoryForm(request.POST)
if form.is_valid():
title = { 'fr' : form.cleaned_data.get('Français') }
title = { 'en' : form.cleaned_data.get('English') }
title = { 'ru' : form.cleaned_data.get('Pусский') }
form['title'] = title
form.save()
【问题讨论】:
-
为什么所有输入都使用相同的名称?为每个输入使用不同的名称(如
title_en、title_fr、title_sp)。然后你可以通过form.cleaned_data['title_en'](例如)获得你想要的输入。 -
如何保存数据?如果我想进行三个输入,我最终将在数据库中创建三列。我希望它们也像 { 'lang' : 'title', 'lang2' : 'title2', 'lang3' : 'title3' } 一样存储在数据库中。 (对不起,我对 django 很陌生)
-
如果您使用的是 postgres 数据库,json field 可用于以您想要的格式存储数据。
-
我明白这一点,但我的问题是如何在不创建新列的情况下在 html 上添加更多输入?
-
请参阅documentation 以了解如何处理表单。例如,您可以写
lang_en=forms.CharField(max_length=2)
标签: python-3.x django django-forms