次のモデルを取得しました。
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 つのエントリが含まれています。
通貨モデルは、次のフォーム内の ModelChoiceField に関連付けられています。このフォームには、通貨フィールドで実際に選択された通貨に応じて、金額をチェックするためのユーザー定義の検証「clean_amount」があります。
選択したオブジェクトの値が「$」または「€」の場合、userdef-validation「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