在forms.py 中,我創(chuàng)建了一個application_status 小部件并將其添加到customerForm。如下:APPLICATION_STATUS = [ ('new', 'New'), ('processing', 'Processing'), ('reject', 'Rejected'), ('complete', 'Completed'),]class CustomerForm(forms.ModelForm): application_status = forms.CharField(label='What is your application status?', widget=forms.Select(choices=APPLICATION_STATUS)) # email_one = forms.EmailField() class Meta: model = Customer fields = ('application_status')然后在 view.py 中我將所選值保存在數(shù)據(jù)庫中,但它保存了所選選項的名稱而不是顯示值。例如,我選擇了“處理”選項,我希望將值“處理”保存在數(shù)據(jù)庫中。但我看到“處理”已保存。代碼如下:def customer_new(request): if request.method == "POST": form = CustomerForm(request.POST) if form.is_valid(): customer = form.save(commit=False) customer.status = request.POST.get('application_status') customer.save() return redirect('customer_detail', pk=customer.pk) else: form = CustomerForm() return render(request, 'customer_edit.html', {'form': form})請幫助一點。
2 回答

藍山帝景
TA貢獻1843條經(jīng)驗 獲得超7個贊
在我看來,它現(xiàn)在所做的是正確的。它應該使用APPLICATION_STATUS存儲在數(shù)據(jù)庫中的第一個實例,第二個作為顯示版本。如果您需要存儲元組中的第二個值,請更改APPLICATION_STATUS以反映:
APPLICATION_STATUS = [
('New', 'New'),
('Processing', 'Processing'),
('Rejected', 'Rejected'),
('Completed', 'Completed'),
]
但同樣,在我看來,這將是錯誤的做法。

Smart貓小萌
TA貢獻1911條經(jīng)驗 獲得超7個贊
正確答案是:
opciones = (
('a','A'),
('a1','A1')
)
class Producto(ModelForm):
a = forms.ChoiceField(choices=opciones)
...有了這個,框架將向您顯示這些選項的選擇......
添加回答
舉報
0/150
提交
取消