2013-05-29 4 views
1

나는 슬래시를 기반으로 IP 주소 범위를 인쇄하는 IP 차단 계산기 웹 응용 프로그램을 보유하고 있습니다. 그러나 범위의 마지막 레코드 만 텍스트 필드에 저장합니다. 모든 것을 텍스트 필드에 저장할 수 있어야합니다.Django 모델의 루프

내 코드에 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

어떤 도움을 크게입니다 그것을 주셔서 감사합니다.

+0

을 정의 ip_range'입니까? – karthikr

답변

1

obj.ip_range = rangeip는 과제입니다. obj.ip_range의 내용을 새로운 rangeip으로 바꿉니다.

당신이해야 할 것은 어떻게`

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

도움을 주셔서 감사합니다, karthikr! – Infinixd

+0

. 나는 그것을 놓쳤다 :) 그것은 기뻤다. – karthikr

+0

질문이 하나 더 있습니다. manytomanyfield에 ip 목록을 추가 할 수 있습니까? – Infinixd