Source code for nested_admin.tests.two_deep.models

from __future__ import unicode_literals

from django.db import models
from django.db.models import ForeignKey, CASCADE
from nested_admin.tests.compat import python_2_unicode_compatible


[docs]@python_2_unicode_compatible class GroupAbstract(models.Model): slug = models.CharField(max_length=128)
[docs] class Meta: abstract = True
def __str__(self): return self.slug
[docs]@python_2_unicode_compatible class SectionAbstract(models.Model): slug = models.CharField(max_length=128) position = models.PositiveIntegerField()
[docs] class Meta: abstract = True
def __str__(self): parts = ["%s[%d]" % (self.slug, self.position)] if self.group: parts.insert(0, "%s" % self.group) return "/".join(parts)
[docs]@python_2_unicode_compatible class ItemAbstract(models.Model): name = models.CharField(max_length=128) position = models.PositiveIntegerField()
[docs] class Meta: abstract = True
def __str__(self): parts = ["%s[%d]" % (self.name, self.position)] if self.section: parts.insert(0, "%s" % self.section) return "/".join(parts)
[docs]class StackedGroup(GroupAbstract): pass
[docs]class StackedSection(SectionAbstract): group = ForeignKey(StackedGroup, related_name='section_set', on_delete=CASCADE) class Meta: ordering = ('group', 'position')
[docs]class StackedItem(ItemAbstract): section = ForeignKey(StackedSection, related_name='item_set', on_delete=CASCADE) upload = models.FileField(blank=True, null=True, upload_to='foo') class Meta: ordering = ('section', 'position')
[docs]class TabularGroup(GroupAbstract): pass
[docs]class TabularSection(SectionAbstract): group = ForeignKey(TabularGroup, related_name='section_set', on_delete=CASCADE) class Meta: ordering = ('group', 'position')
[docs]class TabularItem(ItemAbstract): section = ForeignKey(TabularSection, related_name='item_set', on_delete=CASCADE) class Meta: ordering = ('section', 'position')
[docs]class SortableWithExtraRoot(models.Model): slug = models.CharField(max_length=128)
[docs]class SortableWithExtraChild(models.Model): slug = models.CharField(max_length=128) root = ForeignKey(SortableWithExtraRoot, on_delete=CASCADE) position = models.PositiveIntegerField() foo = models.CharField(max_length=128, default='bar') class Meta: ordering = ('position', )