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