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
Django 文本字段列表和字段。选择问题_Django_List_Loops_Choice - Fatal编程技术网

Django 文本字段列表和字段。选择问题

Django 文本字段列表和字段。选择问题,django,list,loops,choice,Django,List,Loops,Choice,当我的IP列表从一个文本字段进入“IP列表”,而不是将每个IP作为一个选项放在一行时,我遇到了一个问题 IP必须是单独的选择。我有一种感觉,这可能是一个简单的解决办法,但似乎无法找到它 以下是一些例子: 事情就是这样: 192.168.1.2 192.168.1.3。。。192.168.1.5 这就是我的愿望: 192.168.1.2 192.168.1.3 192.168.1.5 型号.py 丹尼尔推荐的forms.py 您可以这样做: split_range = self.instance

当我的IP列表从一个文本字段进入“IP列表”,而不是将每个IP作为一个选项放在一行时,我遇到了一个问题

IP必须是单独的选择。我有一种感觉,这可能是一个简单的解决办法,但似乎无法找到它

以下是一些例子:

事情就是这样:

192.168.1.2 192.168.1.3。。。192.168.1.5

这就是我的愿望:

192.168.1.2

192.168.1.3

192.168.1.5

型号.py

丹尼尔推荐的forms.py


您可以这样做:

split_range = self.instance.ip_range.split(' ') #Or whatever your delimiter is
ip_list_choices = zip(split_range, split_range) #Gives you a tuple. 
self.fields['ip_list'] = forms.ChoiceField(choices=ip_list_choices)

您正在从单个实例检索ip_范围(它是单个文本字段)。我不太明白你想做什么。好吧,不要把for循环中的IP地址列表保存到文本字段中。我可以直接把IP地址列表传递给我的选择吗?这很有效!!!再次感谢大家的帮助。这就像上次一样是一个基本的解决方案。
class IP_blockForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
    super(IP_blockForm, self).__init__(*args, **kwargs)
        if self.instance and self.instance.ip_range:

            #This is where I pass the list from the text field    

            ip_list_choices = [(self.instance.ip_range, self.instance.ip_range ),]

            self.fields['ip_list'] = forms.ChoiceField(choices=ip_list_choices)

    class Meta:
        model = IP_block
split_range = self.instance.ip_range.split(' ') #Or whatever your delimiter is
ip_list_choices = zip(split_range, split_range) #Gives you a tuple. 
self.fields['ip_list'] = forms.ChoiceField(choices=ip_list_choices)