mirror of
https://github.com/fergalmoran/dss.api.git
synced 2026-01-04 15:44:11 +00:00
Loadsa stuff
This commit is contained in:
1
___api/__init__.py
Normal file
1
___api/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
__author__ = 'fergalm'
|
||||
16
___api/serializers.py
Normal file
16
___api/serializers.py
Normal 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
12
___api/urls.py
Executable 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
27
___api/views.py
Normal 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',
|
||||
)
|
||||
Reference in New Issue
Block a user