在Django模型循环

时间:2013-05-29 00:39:22

标签: django list for-loop django-models ipv4

我有一个IP Block计算器Web应用程序,它将根据斜杠打印一系列IP地址。但是,它仅将范围中的最后一条记录保存到文本字段中。我希望能够将它全部保存到文本字段中。

我在我的代码中使用python-ipy。查看最后一个循环“rangeip”

这是我的代码:

#ip block and range save function 

def save(obj, *args, **kwargs):

        subnet = unicode(obj.subnet)

        first = IP(obj.ip_start + subnet).net()
        broadcast = IP(obj.ip_start + subnet).broadcast()

        print first
        print broadcast

        obj.broadcast_ip = broadcast

        ip_block = IP(obj.ip_start + subnet)
        ip_block.WantPrefixLen = 3


        ip = IP(obj.ip_start + subnet)

        for gateway in ip[1]:
            obj.gateway_ip = gateway
            print gateway

        #rangeip for loop

        for rangeip in ip:
            obj.ip_range = rangeip
            print rangeip

        super(IP_block, obj).save(*args, **kwargs)

这就是我想要的,为了能够将列表保存到文本字段中,它只保存最后的ip:192.168.1.31

示例我想:

192.168.1.1 192.168.1.0 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5 192.168.1.6 192.168.1.7 192.168.1.8 192.168.1.9 192.168.1.10 192.168.1.11 192.168.1.12 192.168.1.13 192.168.1.14 192.168.1.15 192.168.1.16 192.168.1.17 192.168.1.18 192.168.1.19 192.168.1.20 192.168.1.21 192.168.1.22 192.168.1.23 192.168.1.24 192.168.1.25 192.168.1.26 192.168.1.27 192.168.1.28 192.168.1.29 192.168.1.30 192.168.1.31

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:1)

obj.ip_range = rangeip是一项任务。您正在使用新obj.ip_range替换rangeip的内容。

您需要做的是:

obj.ip_range += "%s"%rangeip
相关问题