added apifunctionality for adding member
This commit is contained in:
+20
-1
@@ -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
@@ -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")
|
||||
|
||||
@@ -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),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user