def __init__(self, **kw):
        fields = self.get_field_set().intersection(kw)
        new_args = dict((field, kw.pop(field)) for field in fields)
        super(Email, self).__init__(**new_args)

        user_or_donor = kw.get('user')
        if hasattr(user_or_donor, 'user'):
            kw['user'] = kw['user'].user

        for k, v in kw.iteritems():
            setattr(self, k, v)
So the object's constructor can behave like a regular model but we don't have
dataset/ETHPy150Open jumoconnect/openjumo/jumodjango/mailer/models.py/Email.__init__