トランザクションのモデルフォームがあります。そのトランザクション モデルには、金額のフィールド (DecimaField) があります。1,000を入力しようとすると、データを保存できませんが、エラーは表示されず、更新されるだけです。モデルフォームにローカライズを入れようとしましたが、まだ許可されていません。
フォームがコンマ (1,000) を受け入れるようにするにはどうすればよいですか?
ここに私のコードがあります:
フォーム.py
class AddTransactionForm(forms.ModelForm):
amount = forms.DecimalField(localize=True)
class Meta:
model = Transaction
exclude = ('envelope', 'uid',)
def __init__(self, user, *args, **kwargs):
super(AddTransactionForm, self).__init__(*args, **kwargs)
//other codes here
ビュー.py
完全に保存する前にビューでもコンマを置き換えようとしましたが、エラーが発生しました。
def transaction(request):
if request.method == 'POST':
if request.POST['process'] == 'addtrans':
tform = AddTransactionForm(request.user,
request.POST)
if tform.is_valid():
if request.POST['type'] == 'withdrawal':
trans = tform.save(commit=False)
trans.amount = 0 - trans.amount
trans.save()
messages.success(request,
"Transaction created successfully.")
else:
trans = tform.save()
messages.success(request,
"Transaction created successfully.")
if not trans.account:
env = Envelope.objects.get(
user=request.user,
name='Unallocated Income')
trans.envelope = env
trans.save()
env.amount += trans.amount
env.save()
messages.success(request,
"Unallocate income save")
return HttpResponseRedirect(reverse('transactions:transaction'))
return render(request, 'trans_list.html', {
.........
})
モデルを変更したくありません。フォームやビューに方法はありますか?