0

我正在为一些对我来说似乎很简单的事情而苦苦挣扎,所以如果这似乎是一个愚蠢的问题,我提前道歉。我正在努力获取使用 POST 的表单提交的值,该表单的值来自下拉列表。这些值从 django 管理站点显示,即管理员用户可以在管理站点中添加多个值,这些值使用 MulitpleChoiceField 显示在下拉列表中。(这样管理员可以控制可以测试的 IP 地址)

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

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 地址是什么。

请问有人可以帮忙吗?

4

2 回答 2

1

serverip = cd['serverip'].name应该解决你的问题。

你知道 django 已经提供了一个IPAddressField?

于 2012-09-03T17:58:35.813 回答
1

您有一个 ServerIpAddress 实例 - 根据您的模型,该值存储在name属性中。因此,如果您只需要将值传递给其他函数,您可以使用serverip.name.

于 2012-09-03T18:01:34.297 回答