2012-09-03 32 views
0

我正在努力處理對我來說很簡單的事情,所以如果這看起來很愚蠢,我會提前道歉。我正努力通過使用具有來自下拉列表的值的POST的表單來獲取提交的值。這些值從django管理站點顯示,即admin用戶可以在管理站點中添加多個值,並使用MulitpleChoiceField將這些值顯示在下拉列表中。 (這種方式管理員控制可以測試的IP地址)從MulitpleChoiceField獲得值

在我的模型中,我配置了以下內容。

from django.db import models 

class ServerIpAddress(models.Model): 
    name    = models.CharField(max_length=200) 

    def __unicode__(self): 
     return self.name 


from platform.models import ServerIpAddress 

在我的表格中,我有以下配置。

serverip = forms.ModelChoiceField(queryset=CloudStackIpAddress.objects.all(), 
      label='server IP to test') 

當提交表單時,我在我的views.py收集清理的數據

cd = form.cleaned_data 
serverip = cd['serverip'] 

然而,當我回顧值回來爲之後的表格已經提交,我得到以下

'serverip': <ServerIpAddress: 10.0.25.14> 

我只是需要IP地址,在這種情況下10.0.25.14(或它可能是另一個值)。由於腳本無法確定當前讀取的IP地址,因此我現在使用的格式正在導致更進一步的問題。

請問有人可以幫忙嗎?

回答

1

serverip = cd['serverip'].name應該解決您的問題。

您是否知道django已經提供IPAddressField

+0

謝謝!我用另一種方式玩弄.name。這是我有多接近 serverip = cd ['serverip'] t_serverip = serverip.name。 我知道有一個ipaddress字段,但這種方式我可以控制哪些IP地址顯示在MulipleChoiceField中。再次感謝 – Oli

+0

使用內置的IPAddressField不會改變您使用MultipleChoiceField的方式。 –

1

您有一個ServerIpAddress實例 - 根據您的模型,該值存儲在name屬性中。所以如果你只是需要將值傳遞給其他函數,你會做serverip.name

+0

謝謝丹尼爾 - 明白了.. _still_learning_ – Oli