【发布时间】:2014-09-01 15:22:59
【问题描述】:
我有一个模型,并且正在使用 vanilla 视图来创建 Create、Update、Detail 和 Delete 视图。
class Person( models.Model ):
username = models.CharField( max_length=30, unique=True )
first_name = models.CharField( max_length=30 )
middle_initial = models.CharField( max_length=3, null=True, blank=True )
last_name = models.CharField( max_length=30 )
last_four_ssn = models.CharField( max_length="5" )
ssn = models.CharField( max_length="13", verbose_name='SSN', blank=False )
我想做的是创建一个没有“last_four_ssn”的表单,然后在提交(并验证)表单时,我想将 last_four_ssn 设置为 ssn 中的最后四个数字。
class PersonCreate(PersonCRUDView, CreateView):
fields = ['username', 'first_name', 'middle_initial', 'last_name',
'ssn', 'email', 'years_of_service', 'birth_date',
'address', 'city', 'state', 'zip_code']
def form_valid(self, form):
form.cleaned_data['ssn_last_four'] = form.cleaned_data['ssn'][-4:]
return super(PersonCreate, self).form_valid(form)
但它似乎不起作用。
如何保存 ssn_last_four?
【问题讨论】:
-
我承认我一定错过了一些愚蠢的东西。谷歌了一遍,不知道如何设置。
标签: django django-forms django-views