2011-09-18 16 views
2

我想在我的ModelForm中有age字段,並用它來填充模型中的birth_year
做這件事的慣用方法是什麼?我應該在我的表格或模型或元類中提供什麼方法​​?如何使用一些計算從不同的ModelForm字段填充模型字段值?

+0

這取決於您是否希望在保存/更新模型實例時填寫'birth_year'字段,或者是否希望它是一個動態解決方案,而不需要保存以更新'birth_year '基於'年齡'? – WTK

回答

2
from datetime import datetime 
import forms 
from myapp.models import MyModel 


class MyAgeForm(forms.ModelForm): 
    age = forms.IntegerField() 
    # define other custom fields here 

    class Meta: 
     model = MyModel 
     # probably define what fields from the model to include/exclude here 


    def save(self, *args, **kwargs): 
     self.instance.birth_year = datetime.now().year - self.cleaned_data['age'] 
     return super(MyAgeForm, self).save(*args, **kwargs)