Django admin IPAddressField不允许**

Django admin IPAddressField不允许**,django,django-admin,Django,Django Admin,如何允许IPAddressField接受字符串..** 现在,每次我尝试保存时,都会收到输入有效IPv4地址的消息。错误 class YourForm(forms.Form): ipfield = forms.CharField() def clean_ipfield(self): value = self.cleaned_data['ipfield'] # Check if they saved an IP, only use

如何允许IPAddressField接受字符串..**

现在,每次我尝试保存时,都会收到输入有效IPv4地址的消息。错误

class YourForm(forms.Form):
    ipfield = forms.CharField()

    def clean_ipfield(self):        
        value = self.cleaned_data['ipfield']
        # Check if they saved an IP, only use this if the field is required
        if not value:
            if self.fields['ipfield'].required:
                raise forms.ValidationError('No IP was given')
            else:
                return value

        ip = value.split('.')

        # Make sure the ip has atleast 4 parts to it
        # Upto 8 are required for IPv6
        if 4 > len(ip) or len(ip) > 8 :
            raise forms.ValidationError('An invalid IP address was entered')

        # Check that all parts are digits or '*' (additional checks can be done here too)
        for i in ip:
            if i != '*' and not i.isdigit():
                raise forms.ValidationError('%s is not a valid IP part' % i)

        return '.'.join(ip)
不确定这是不是你想要的。您可以使用CharField()并自己提供自定义验证,而不是使用实际的IpAddressField(),如下所示。 请注意,YourForm是实际表单的名称,ipfield是当前IpAddressField的名称


希望有帮助。

好吧。。。是 啊这不是一个有效的IP地址。也许你应该描述一下你真正想要的是什么。我假设开尔文想要任何ip地址。“任何ip地址”是一个掩码为0或0.0.0.0的0.0.0地址。