나는 거래를위한 modelform을 가지고있다. 해당 트랜잭션 모델에는 금액 (DecimaField) 필드가 있습니다. 을 입력하면 데이터를 저장할 수는 있지만 오류는 표시되지 않으며 새로 고침 만합니다. 나는 modelform에 현지화하려고하지만 여전히 나를 허용하지 않습니다.사용자가 쉼표를 입력하는 것을 허용하는 방법
양식에 쉼표 (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가 도움이 될 수 있습니까? –
@EllochkaCannibal 나는 이미 그 효과를 시도했지만 아무런 효과가 없었다. 어쩌면 장고 1.4에 변경이 있습니다 – catherine
전체보기 코드를 표시하십시오. 오류가 렌더링되지 않는다는 사실은보기에 문제가 있음을 나타냅니다. 오류 메시지는 잘못된 정밀도로 입력 된 숫자와 같은 쉼표가있는 오류 이외의 것을 나타낼 수 있습니다. –