如何僅使用表格驗證ModelForm?如何僅使用FormForm的表單驗證?
請看我的代碼!
models.py
from django.db import models
class IPAddr(models.Model):
ip = models.GenericIPAddressField(unique=True,)
class myModel(models.Model):
ip = models.ForeignKey(IPAddr)
forms.py
from django.forms import ModelForm
from django import forms
from app.models import * # This is thing above models.py
class myModelForm(ModelForm):
ip = forms.GenericIPAddressField()
class Meta:
model = myModel
我想下面的邏輯。
用戶輸入的IP(IP到字段) - >驗證 - >(form.is_valid爲True)goodIP = IPAddr.objects.get_or_create(user_input_ip) - > myModel.objects.create(IP = goodIP)
但驗證總是失敗...
因爲(例如)用戶輸入是'1.2.3.4'。如您所知,'1.2.3.4'是有效的IP地址。
但是form.is_valid是False。因爲'1.2.3.4'不是IPAddr實例。
所以我不能使用我想要的邏輯。
我們來看看ModelForm document。
The first time you call is_valid() or access the errors attribute of a ModelForm triggers form validation as well as model validation.
我想了解的唯一形式驗證的驗證......
...
難道我必須使用Forms沒有的ModelForm ...?
使用ModelForm時,我可以使用我想要的邏輯嗎?
可能重複:http://stackoverflow.com/questions/30295246/django-genericipaddress-field-is-not-validating-input –