Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将所选下拉值选项的值传递给django数据库_Python_Html_Django_Forms_Django Forms - Fatal编程技术网

Python 将所选下拉值选项的值传递给django数据库

Python 将所选下拉值选项的值传递给django数据库,python,html,django,forms,django-forms,Python,Html,Django,Forms,Django Forms,我正在做一个Django项目。我正在制作一个HTML表单(不使用Djnango表单)。现在,我可以使用“POST”方法将“text”输入的值传递到数据库(只需为输入标记命名,并从views.py访问它们)。但是,当涉及到下拉菜单的响应时,我也有同样的问题。我有一个下拉菜单,用户可以从中选择多个选项。现在,如何检测用户选择的选项并将其传递给views.py,以便将它们添加到数据库中 这是下拉菜单的代码 Enter City (hold Ctrl to select more tha

我正在做一个Django项目。我正在制作一个HTML表单(不使用Djnango表单)。现在,我可以使用“POST”方法将“text”输入的值传递到数据库(只需为输入标记命名,并从views.py访问它们)。但是,当涉及到下拉菜单的响应时,我也有同样的问题。我有一个下拉菜单,用户可以从中选择多个选项。现在,如何检测用户选择的选项并将其传递给views.py,以便将它们添加到数据库中

这是下拉菜单的代码

        Enter City (hold Ctrl to select more than one)
        <label for="inputCity" class="sr-only">Select City to be shipped to</label><br>
        <select multiple class="form-control" id="optCity" name="city" required>
            {% for city in all_cities %}
            <option>{{city.city_name}}</option>
            {% endfor %}
        </select><br>   
输入城市(按住Ctrl键选择多个)
选择要发送到的城市
{所有城市中城市的百分比%} {{城市.城市名称} {%endfor%}
型号

class City(models.Model):
    name = models.CharField(max_length=512)

    def __unicode__(self):
        return self.name

假设它呈现

<option value="1">Kyiv</option>

<option value="2">Lviv</option>

<option value="3">Odessa</option>

<option value="4">New York</option>

<option value="5">Tbilisi</option>


因为问题是开放的,你有很多选择。这里有两个非常简单的解决方案

最简单的方法是使用
选择文件
。文件是


如果需要更多控制,可以使用特定的小部件。请参阅文档

谢谢,它有助于。。。但问题是,我希望返回“City”类型的对象。如果我将value=“{city.city_name}}”,它将返回名为特定城市的字符串(比如c1-string)。但我有多个选择c1、c2、c3——它们都是“城市”类型的对象。显然,它表明下拉列表并没有返回“city”类型的对象。我该怎么办?
def form_view(request):
    context = {
        'all_cities': City.objects.all()
    }

    if request.POST:
        city_pk_list = request.POST.getlist('city', None)
        print(request.POST.getlist('city', None))

        selected_city_obj_list = City.objects.filter(pk__in=city_pk_list)
        print(selected_city_obj_list)


    return render(request, 'index.html', context=context)
class City(models.Model):
    name = models.CharField(max_length=512)

    def __unicode__(self):
        return self.name
<option value="1">Kyiv</option>

<option value="2">Lviv</option>

<option value="3">Odessa</option>

<option value="4">New York</option>

<option value="5">Tbilisi</option>
[u'1', u'3']
[<City: Kyiv>, <City: Odessa>]