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 に答える