我得到了下面的模型内的forms.ModelChoiceField的选择值:使用Django形式:我如何使用USERDEF验证
class currency(models.Model):
currency = models.CharField(max_length=50)
dollaramount = models.DecimalField(max_digits=10, decimal_places=2)
def __unicode__(self):
return self.currency
该模型包含2个entrys与货币价值的“$”和“ €“
货币模型与以下格式的ModelChoiceField相关联,该模型具有用于检查金额的用户定义的验证”clean_amount“,具体取决于从货币本身实际选择货币区域中的货币。
如果来自所选对象的值是“$”或“€”,我如何在userdef验证“clean_amount”内进行比较?
from django import forms
from currencies.models import currency
class createform(forms.Form):
currency = forms.ModelChoiceField(queryset = currency.objects.all())
amount = forms.DecimalField(initial = 0)
def clean_amount(self):
currencyfield = self.cleaned_data['currency']
amount = self.cleaned_data['amount']
if amount < 0:
raise forms.ValidationError("Amount must be at least 0.")
#HERE I WANT TO CHECK
choosencurrency = currencyfield.??????
if choosencurrency == "$" :
#check $amount
if choosencurrency == "€" :
#check €amount
return amount
您是否试图将表单提交结果保存到数据库? – cazgp
是的,我想将它们保存到提交给db的模型中... – daeagzte
然后,您应该使用ModelForm,它将数据映射到您的模型。 – cazgp