Магистрально-реляционные и Джанго-Тастипи: пример работы полей «многие ко многим» - PullRequest
6 голосов
/ 17 марта 2012

Может ли кто-нибудь привести пример работы со многими-многими полями экземпляров моделей django.db с помощью django-tastypie и backbone-реляционных?Теперь это возможно с использованием промежуточной модели.

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=42)    

class Book(models.Model):
    authors = models.ManyToManyField(Author, related_name='books', through='Authorship')
    title = models.CharField(max_length=42)

class Authorship(models.Model):
    author = models.ForeignKey(Author)
    book = models.ForeignKey(Book)

Вот возможные варианты конфигурации вкусных ресурсов:

from tastypie import fields, resources

class AuthorResource(resources.NamespacedModelResource):
    books = fields.ToManyField('library.api.resources.AuthorshipResource', 'books')

    class Meta:
        resource_name = 'author'
        queryset = models.Author.objects.all()

class BookResource(resources.NamespacedModelResource):
    authors = fields.ToManyField('library.api.resources.AuthorshipResource', 'authors')

    class Meta:
        resource_name = 'book'
        queryset = models.Book.objects.all()

class AuthorshipResource(resources.NamespacedModelResource):
    author = fields.ToOneField('library.api.resources.AuthorResource', 'author')
    book = fields.ToOneField('.api.resources.BookResource', 'book')

    class Meta:
        resource_name = 'authorship'
        queryset = models.Authorship.objects.all()

Как сохранить автора, связанного с несколькими несохраненными книгами, используя один запрос ксервер

...