0

次のモデルを取得しました。

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
4

1 に答える 1