50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
from django.db import models
|
|
|
|
class Member(models.Model):
|
|
'''
|
|
Member model represets one member on the registry
|
|
'''
|
|
|
|
first_name = models.CharField(max_length=127)
|
|
last_name = models.CharField(max_length=127)
|
|
email = models.EmailField()
|
|
POR = models.CharField(max_length=255) # place of residence
|
|
AYY = models.BooleanField(default=False)
|
|
jas = models.BooleanField(default=False)
|
|
|
|
def get_dict(self):
|
|
return {
|
|
'id':self.id,
|
|
'first_name':self.first_name,
|
|
'last_name':self.last_name,
|
|
'email':self.email,
|
|
'POR':self.POR,
|
|
'AYY':self.AYY,
|
|
'jas':self.jas,
|
|
}
|
|
|
|
@classmethod
|
|
def create_from_dict(cls,d):
|
|
mbr = cls()
|
|
mbr.update_from_dict(d)
|
|
return mbr.get_dict()
|
|
|
|
def update_from_dict(self,d):
|
|
dmap = {
|
|
'first_name': 'first_name',
|
|
'last_name': 'last_name',
|
|
'email': 'email',
|
|
'POR': 'POR',
|
|
'AYY': 'AYY',
|
|
'jas': 'jas',
|
|
}
|
|
for k,v in d.items():
|
|
try:
|
|
self.__setattr__(dmap[k],v)
|
|
except KeyError:
|
|
pass
|
|
self.save()
|
|
|
|
def __str__(self):
|
|
return "{} {}".format(first_name, last_name)
|