Как заполнить значение поля модели из другого поля ModelForm некоторыми вычислениями? - PullRequest
2 голосов
/ 18 сентября 2011

Я хочу иметь поле age в моем ModelForm и использовать его для заполнения birth_year в модели.
Какой идиоматический способ сделать это?Какой метод я должен предоставить в своей форме, модели или мета-классе?

1 Ответ

2 голосов
/ 19 сентября 2011
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)
...