Как динамически установить значение MoneyField в DJMoney? - PullRequest
0 голосов
/ 04 ноября 2019

В настоящее время я использую djmoney для хранения информации о деньгах в моей базе данных. Сейчас мне нужно вручную установить значения в моей форме, поэтому я использую

class MyForm(forms.Form):
    money = MoneyField()

...

def view(request):
    form = MyForm(initial={ 'money' : Money(0.5, 'USD')})

Но это не работает, потому что, как я позже выяснил, MoneyField использует default_amount и default_currency kwargs дляустановить его.

Кроме того, я провел некоторое исследование и посмотрел в код , чтобы посмотреть, что я могу с этим поделать. Итак, я попытался:

  1. Настройки form.fields['money'].initial = [ 0.5, 'USD' ] (как автор внутри MoneyField реализация.
  2. Или установка нового объекта виджета после инициализации формы: form.fields['money'].widget = MoneyWidget(default_currency='USD')

Но ничего из этого не сработало для меня. Так как мне установить динамическую форму MoneyField?

...