27
I couldn't find any information on how to achieve this in the tutorial at the Django REST Framework website and I haven't managed to find it in the documentation, though I'm sure it's there somewhere.
I want issues to be the parent resource and pages to be the children so that /issues/1/pages returns all pages with issue_id of 1.
Is there a good way to achieve this using generic class based views?
Here's what I have so far.
restAPI/urls.py:
from django.conf.urls import patterns, url
from rest_framework.urlpatterns import format_suffix_patterns
from restAPI import views
urlpatterns = patterns('',
url(r'^issues/$', views.IssueList.as_view()),
url(r'^issues/(?P<pk>[0-9]+)/$', views.IssueDetail.as_view()),
url(r'^issues/(?P<issue_id>[0-9]+)/pages/$', views.PageList.as_view()),
url(r'^pages/(?P<pk>[0-9]+)/$', views.PageDetail.as_view()),
)
urlpatterns = format_suffix_patterns(urlpatterns)
restAPI/models.py:
from django.db import models
class Issue(models.Model):
created = models.DateTimeField(auto_now_add=True)
revision = models.IntegerField(default = 1)
issue_date = models.DateTimeField(auto_now_add=True)
issue_image_url = models.CharField(max_length=100)
class Page(models.Model):
created = models.DateTimeField(auto_now_add=True)
page_number = models.IntegerField()
standard_page_url = models.CharField(max_length=100, default='')
large_page_url = models.CharField(max_length=100, default='')
thumbnail_url = models.CharField(max_length=100, default='')
issue = models.ForeignKey(Issue, related_name="pages")
class Meta:
ordering = ('page_number',)
restAPI/serializers.py:
from rest_framework import serializers
from restAPI.models import Page, Issue
class IssueS