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