2013-05-29 134 views
1

我有一個IP塊計算器Web應用程序,它將打印一系列基於斜槓的IP地址。但它只會將範圍中的最後一條記錄保存到文本字段中。我希望能夠將其全部保存到文本字段中。在Django中循環模型

我用我的代碼使用python-ipy。看看最後的for循環「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

任何幫助都非常感激。

+0

如何'ip_range'定義? – karthikr

回答

1

obj.ip_range = rangeip是一項任務。您將用新的rangeip替換obj.ip_range的內容。

你需要做的是:

obj.ip_range += "%s"%rangeip 
+0

謝謝你的幫助,karthikr! – Infinixd

+0

darn。我錯過了:)很高興它的工作。 – karthikr

+0

我還有一個問題,是否有可能將ip列表添加到manytomanyfield? – Infinixd