我有一個交易模型。該交易模型有一個金額字段(DecimaField)。當我嘗試輸入1,000它不允許我保存數據,但沒有顯示錯誤,它只是刷新。我嘗試把本地化的模式,但它仍然不允許我。如何讓用戶輸入逗號
如何讓表單接受逗號(1,000)?
這裏是我的代碼:
forms.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
views.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', {
.........
})
我不想修改我的模型。有形式或意見的方式嗎?
也許這個http://stackoverflow.com/questions/3203089/make-django-forms-use-comma-as-decimal-separator會有幫助嗎? – 2013-03-10 10:08:04
@EllochkaCannibal我已經試過,但沒有效果。也許在Django 1.4中有變化 – catherine 2013-03-10 10:10:52
請顯示您的整個視圖代碼。錯誤未呈現的事實表明您的視圖中存在問題。該錯誤消息可能指示除逗號之外的錯誤,例如以不正確的精度輸入的數字。 – 2013-03-10 10:14:34