Django 文本字段列表和字段。选择问题
当我的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.pyDjango 文本字段列表和字段。选择问题,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
您可以这样做:
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)