Source

article / article / api / views.py

from tastypie.resources import ModelResource
from tastypie import fields, utils

from article.models import Recipe, Ingredient, RecipeIngredient, Measurement


class RecipeResource(ModelResource):
    ingredients = fields.ToManyField('article.api.views.RecipeIngredientResource', 'recipe_ingred', related_name='recipeingredient', full=True)

    class Meta:
        queryset = Recipe.active.select_related()
        resource_name = 'recipe'

class IngredientResource(ModelResource):
    class Meta:
        queryset = Ingredient.objects.all()

class RecipeIngredientResource(ModelResource):
    ingred_name = fields.ToOneField('article.api.views.IngredientResource', 'ri_ingred', full=True)
    measurement = fields.ToOneField('article.api.views.MeasurementResource', 'ri_measurement', full=True)

    class Meta:
        queryset = RecipeIngredient.objects.all()
        resource_name = 'recipeingredient'
        excludes = ['ri_date']

class MeasurementResource(ModelResource):
    class Meta:
        queryset = Measurement.objects.all()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.