Loadsa stuff

This commit is contained in:
Fergal Moran
2015-05-27 20:55:11 +01:00
parent 59865c42b8
commit 5ff02b5eff
19 changed files with 535 additions and 138 deletions

1
___api/__init__.py Normal file
View File

@@ -0,0 +1 @@
__author__ = 'fergalm'

16
___api/serializers.py Normal file
View File

@@ -0,0 +1,16 @@
from rest_framework import serializers
from spa import models
class MixSerializer(serializers.ModelSerializer):
user = serializers.SlugRelatedField(slug_field='slug', read_only=True)
class Meta:
model = models.Mix
class UserProfileSerializer(serializers.ModelSerializer):
mixes = serializers.HyperlinkedRelatedField(queryset=models.Mix.objects.all(), view_name='mix-detail', many=True)
class Meta:
model = models.UserProfile

12
___api/urls.py Executable file
View File

@@ -0,0 +1,12 @@
from ___api import views
from django.conf.urls import patterns, url, include
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r'user', views.UserProfileViewSet)
router.register(r'mix', views.MixViewSet)
urlpatterns = patterns(
'',
url(r'^', include(router.urls)),
)

27
___api/views.py Normal file
View File

@@ -0,0 +1,27 @@
from rest_framework import viewsets
from rest_framework.permissions import IsAuthenticatedOrReadOnly
from ___api import serializers
from spa import models
class MixViewSet(viewsets.ModelViewSet):
queryset = models.Mix.objects.all()
serializer_class = serializers.MixSerializer
filter_fields = (
'waveform_generated',
'slug',
'user',
'is_featured',
)
class UserProfileViewSet(viewsets.ModelViewSet):
queryset = models.UserProfile.objects.all().order_by('-id') # annotate(mix_count=Count('mixes')).order_by('-mix_count')
serializer_class = serializers.UserProfileSerializer
permission_classes = (IsAuthenticatedOrReadOnly,)
lookup_field = 'slug'
filter_fields = (
'slug',
)