added apifunctionality for adding member

This commit is contained in:
okalintu
2016-07-05 20:14:44 +03:00
parent 794b29f47c
commit e5215f31f7
3 changed files with 34 additions and 5 deletions
+20 -1
View File
@@ -4,7 +4,7 @@ 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()
@@ -23,5 +23,24 @@ class Member(models.Model):
'jas':self.jas,
}
@classmethod
def create_from_dict(cls,d):
dmap = {
'first_name': 'first_name',
'last_name': 'last_name',
'email': 'email',
'POR': 'POR',
'AYY': 'AYY',
'jas': 'jas',
}
mbr = cls()
for k,v in d.iteritems():
try:
mbr.__setattr__(dmap[k],v)
except KeyError:
pass
mbr.save()
return mbr.get_dict()
def __str__(self):
return "{} {}".format(first_name, last_name)
+13 -4
View File
@@ -1,15 +1,24 @@
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
from django.core.exceptions import ValidationError
from members.models import Member
import json
def index(request, *args, **kwargs):
return render(request, 'index.html',{})
return render(request, 'index.html',{})
def members(request, *args, **kwargs):
mems = list(map(lambda m: m.get_dict(),Member.objects.all()))
return HttpResponse(json.dumps(mems))
def member(request, idx, *args, **kwargs):
mem = get_object_or_404(Member, pk=idx)
return HttpResponse(json.dumps(mem.get_dict()))
def member(request,*args, **kwargs):
if request.method == 'GET':
idx = kwargs.pop("idx", None)
mem = get_object_or_404(Member, pk=idx)
return HttpResponse(json.dumps(mem.get_dict()))
if request.method == 'POST':
try:
data = json.parse(request.body)
Member.create_from_dict(data)
except ValueError:
raise ValidationError("Invalid parameters supplied")
+1
View File
@@ -26,4 +26,5 @@ urlpatterns = [
url(r'^members/$', mindex),
url(r'^members/api/members$', mems),
url(r'^members/api/member/(?P<idx>\d+)$', mem),
url(r'^members/api/member/$', mem),
]