【问题标题】:Cannot Access Form Values With Python View in Django无法在 Django 中使用 Python 视图访问表单值
【发布时间】:2019-05-02 01:41:30
【问题描述】:

我正在尝试从一个表单中访问表单值,该表单动态填充来自数据库查询的输入字段的数量,但我无法获取这些值。

def count_add(request):

    items = Item.objects.filter(username=request.user)

    if request.method == 'POST':
        form = CountAddForm(request.POST)

        for item in items:
            print(request.POST[item])
            # if request.POST[item] != None:
            #     print(item)
            #     rating = form.save(commit=False)
            #     rating.username = request.user
            #     rating.item = item
            #     rating.date = datetime.now()
            #     rating.rating = request.POST[item]
            #     rating.save
            #     form = CountAddForm()

    return render(request, 'count_add.html', {'items': items})
<div class="container">
    <div class="row">
        <div class="col s12 opacity">
            <h4 class="card-title center-align white-text">Rate Your Items Below</h4>
            <form method="POST" class="center-align white-text"> {% csrf_token %}

                <ul class="center-align white-text">
                    {% for item in items %}
                    <li class="input-field col s12">
                        <select name="{{ item }}" class="browser-default">
                            <option value="" disabled selected>{{ item }}</option>
                            <option value="1">1</option>
                            <option value="2">2</option>
                            <option value="3">3</option>
                            <option value="4">4</option>
                            <option value="5">5</option>
                            <option value="6">6</option>
                            <option value="7">7</option>
                            <option value="8">8</option>
                            <option value="9">9</option>
                            <option value="10">10</option>
                        </select>
                    </li>
                    {% endfor %}

我的愿望是从输入字段中获取一个值并将它们保存在数据库中。当我当前确实检索到一个值时,我得到了 None 。

编辑: 我尝试过使用 is_valid 和 clean_data[item],但表单似乎永远不会验证。

【问题讨论】:

    标签: django python-3.x django-forms django-views


    【解决方案1】:

    致电is_valid,然后使用cleaned_data

    def count_add(request):
        ...
        if request.method == 'POST':
            # create a form instance and populate it with data from the request:
            form = CountAddForm(request.POST)
            # check whether it's valid:
            if form.is_valid():
                # process the data in form.cleaned_data as required
    

    https://docs.djangoproject.com/en/2.2/topics/forms/#the-view

    【讨论】:

    猜你喜欢
    • 2014-06-23
    • 2019-10-18
    • 2019-03-23
    • 1970-01-01
    • 2021-08-04
    • 2018-07-10
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多