2013-06-05 1 views
0

장고를 처음 접했기 때문에 이것은 분명해 보일 수 있지만이 것을 이해할 수는 없습니다. 다양한 작업을 수행하기 위해 IP 주소가 필요한보기가 있습니다.Django - 뷰의 변수

node = '127.0.0.1' 

내가, 모델에 저장된 IP 주소가 그래서 내 질문에 내가 사용하여보기에서 "노드"변수를 설정하는 것이 방법입니다 :이 같은 관점에서 수동으로 IP 주소를 지정할 때 잘 작동 URL에서 캡처 한 값과 함께 모델의 데이터?

편집 - 여기 모델이 현재 다르게 수행되어야하는지 알려주세요.

class Server(models.Model): 
    name = models.CharField(max_length=30) 
    ip = models.IPAddressField('IP Address') 

    def __unicode__(self): 
      return self.name 

그래서 "name"은 URL에 캡처 된 값이되고 캡처 된 값을 사용하여 "ip"를 찾습니다. 물론 더 좋은 방법이 있다면 알려주세요.

+0

어떻게 모델이다보기에

url(r'^server_info/(?P<server_name>\w+)/$', 'server_info_view', name='server_info'), 

등 보이는 URL, 사용자가 정의한 만든 뷰이있을 것이다? '모델과 관련된 데이터'란 무엇을 의미합니까? – karthikr

답변

0

IP를 포함한 서버 정보를 표시하는 페이지의 라인을 따라 뭔가를하고 싶다는 것 같습니다 (아마도이 ​​작업을 수행 할 수 있다면 ip를 사용하여 실제로하고 싶은 일을 할 수 있습니다) . 피터의 대답에 유사

, 당신은

from django.shortcuts import get_object_or_404 

def server_info_view(request, server_name): 
    server = get_object_or_404(Server, name=server_name) 
    node = server.ip 
    # Keep in mind, at this point 'node' is a django.models.IPAddressField object, you might need 
    node = str(node) 
    # Which should get you an IP in the format you have above, though I'm not sure. 
+0

대단히 고맙습니다. 그게 효과적이었고, 내가 필요한 것입니다. – user1617987

0

URL에 일종의 식별자를 입력하고 (일반적으로 모델의 PK 만 사용) 개체를 가져 와서 필요한 모든 작업을 수행하십시오. 이 같은

뭔가 : urls.py에서

: 뷰를 들어

... 
url(r'^item_detail/(?P<item_id>\d+)/$', 'my_viewname', name='my_item_detail'), 
... 

:

from django.shortcuts import get_object_or_404 

def my_viewname(request, item_id): 
    my_item = get_object_or_404(MyModel, pk=int(item_id)) 
    node = my_item.node 
    ... 

당신은 클래스 기반 일반적인 전망, DetailView 또는 아무것도를 사용하는 경우 그 SingleObjectMixin을 상속받은 사람은 slug_url_kwarg 또는 pk_url_kwarg 설정을 사용하여이 작업을 수행 할 수 있습니다.