django - 如何将 MultipleChoiceField 保存到数据库

标签 django database

我想创建一个设置页面,用户可以在其中选择他们拥有的多个技能值。它将有一个主要类别,然后是子类别。我需要将它们保存到我的数据库中,这样我就可以查询它们并再次展示他们选择的技能组合。

我知道如何创建 MultipleChoiceField 但不知道如何将它们保存到数据库中。我将如何处理?

表格.py

from django import forms


class skills(forms.Form):
    jobs = [
    ('Håndværker', (
            ('Gulv', 'Gulv'),
            ('Væg', 'Væg'),
        )
    ),
    ('Murer', (
            ('Mur', 'Mur'),
            ('blabla', 'blabla'),
        )
    ),
]
    job = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,
                                         choices=jobs)

View .py

from .forms import skills

def index(request):
    if request.method == 'POST':
        form = skills(request.POST)
        if form.is_valid():
            picked = form.cleaned_data.get('job')
            # do something with your results
    else:
        form = skills
    return render(request, 'settings/index.html', {"form":form})

当前页面加载时看起来像这样,这很好。下一步就是我如何将它保存到数据库中,这样我就可以用他们之前选择的值再次显示它。 Example

最佳答案

由于您还没有任何模型设置,您可以查看 django-multiselectfield ,这会将选定的选项存储为“作为逗号分隔值的 CharField”。然后您只需要从您的表单中传递这些值。

或者您可以查看 PostgreSQL's Array field .

关于django - 如何将 MultipleChoiceField 保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57240699/

相关文章:

ajax - AJAX 成功的 Django 渲染模板

python - Django 和根进程

python - 如何在 Bluemix 中使用 D'jango 通过 Python 创建项目和应用程序

php - 找不到我的变量的值

database - Access 2000 数据库安全

ios - Swift3 sqlite3_open() 打开现有文件

python - django-import-export:如何使用没有键但有名称的外键导入数据?

django - 夹层404和500错误模板未覆盖

JavaScript JSON 表匹配

mysql - 如何在 ETl 中实现零停机