Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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 如何将CharField作为字符串Django进行操作_Python_Django_Django Models_Django Views - Fatal编程技术网

Python 如何将CharField作为字符串Django进行操作

Python 如何将CharField作为字符串Django进行操作,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我有一个charfield,用户在其中输入一系列与数字列表相对应的数字。例如,用户应该能够输入“1、2、3、4、5”或“1-5”,我希望能够将其转换为该范围内所有这些数字的列表。但是,当我在views.py中获取字段的已清理_数据时,该值的行为不像字符串。.split()不转换为列表,for循环通过单个字符循环。如何将字段转换为可用字符串 在views.py中: def my_view(request): if request.method == 'POST': if f

我有一个charfield,用户在其中输入一系列与数字列表相对应的数字。例如,用户应该能够输入“1、2、3、4、5”或“1-5”,我希望能够将其转换为该范围内所有这些数字的列表。但是,当我在views.py中获取字段的已清理_数据时,该值的行为不像字符串。.split()不转换为列表,for循环通过单个字符循环。如何将字段转换为可用字符串

在views.py中:

def my_view(request):
    if request.method == 'POST':
        if form.is_valid():
            nums = form.cleaned_data['numbers']
            nums.split(',')
            num_list = []
            for item in nums:
                if '-' in item:
                    item.split('-')
                    for x in range(item[0], item[1]):
                        num_list.append(x)
                else:
                    num_list.append(item)
如果输入为“1-160”,我会得到一个错误,因为单个字符“-”不能拆分为两个项目并编制索引。预期的num_列表是1到160之间的所有整数的列表

如果输入为“1,2,3”num\u list是所有字符的列表,而不仅仅是数字。

split()

这意味着您需要为返回值分配一个变量

nums=nums.split(',')

nums.split(',')
不会转换字符串的
nums
,它会返回字符串列表,因此您应该使用:

def my_view(request):
    if request.method == 'POST':
        if form.is_valid():
            nums = form.cleaned_data['numbers']
            # ↓ assign the list, for example to nums
            nums = nums.split(',')
            num_list = []
            for item in nums:
                if '-' in item:
                    item.split('-')
                    for x in range(item[0], item[1]):
                        num_list.append(x)
                else:
                    num_list.append(item)
def my_视图(请求):
如果request.method==“POST”:
如果form.is_有效():
nums=表单.已清理的\u数据['numbers']
#&向下箭头;将列表分配给NUM等
nums=nums.split(',')
num_list=[]
对于nums中的项目:
如果项目中有“-”:
项目.拆分(“-”)
对于范围内的x(项目[0],项目[1]):
num_list.append(x)
其他:
数字列表。追加(项目)
def my_view(request):
    if request.method == 'POST':
        if form.is_valid():
            nums = form.cleaned_data['numbers']
            # ↓ assign the list, for example to nums
            nums = nums.split(',')
            num_list = []
            for item in nums:
                if '-' in item:
                    item.split('-')
                    for x in range(item[0], item[1]):
                        num_list.append(x)
                else:
                    num_list.append(item)