1from django.db import models 2from django.urls import reverse 3from django.utils.encoding import python_2_unicode_compatible 4from treebeard.mp_tree import MP_Node 5 6from cms.models.fields import PageField, PlaceholderField 7 8 9@python_2_unicode_compatible 10class Category(MP_Node): 11 parent = models.ForeignKey('self', blank=True, null=True, on_delete=models.CASCADE) 12 name = models.CharField(max_length=20) 13 description = PlaceholderField('category_description', 600) 14 15 def __str__(self): 16 return self.name 17 18 def get_absolute_url(self): 19 return reverse('category_view', args=[self.pk]) 20 21 class Meta: 22 verbose_name_plural = 'categories' 23 24 25class Picture(models.Model): 26 image = models.ImageField(upload_to="pictures") 27 category = models.ForeignKey(Category, on_delete=models.CASCADE) 28 29 30class SampleAppConfig(models.Model): 31 namespace = models.CharField( 32 default=None, 33 max_length=100, 34 unique=True, 35 ) 36 37 38class PageOnDeleteCascade(models.Model): 39 page = PageField(null=True) 40 41 42class PageOnDeleteSetNull(models.Model): 43 page = PageField(on_delete=models.SET_NULL, null=True) 44 45 46class PlaceholderOnDeleteCascade(models.Model): 47 placeholder = PlaceholderField('body', null=True) 48 49 50class PlaceholderOnDeleteSetNull(models.Model): 51 placeholder = PlaceholderField('body', on_delete=models.SET_NULL, null=True) 52