summaryrefslogtreecommitdiff
path: root/tests/inline_formsets/models.py
blob: ccada27e4c884f5ba7112c48ccd5ad55daa51616 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from django.db import models
from django.db.models.functions import UUID4


class School(models.Model):
    name = models.CharField(max_length=100)


class Parent(models.Model):
    name = models.CharField(max_length=100)


class Child(models.Model):
    mother = models.ForeignKey(Parent, models.CASCADE, related_name="mothers_children")
    father = models.ForeignKey(Parent, models.CASCADE, related_name="fathers_children")
    school = models.ForeignKey(School, models.CASCADE)
    name = models.CharField(max_length=100)

    class Meta:
        constraints = [
            models.UniqueConstraint("mother", "father", name="unique_parents"),
        ]


class ParentUUIDPk(models.Model):
    uuid = models.UUIDField(primary_key=True, db_default=UUID4(), editable=False)

    class Meta:
        required_db_features = {
            "supports_uuid4_function",
            "supports_expression_defaults",
        }


class ChildUUIDPk(models.Model):
    parent = models.ForeignKey(ParentUUIDPk, models.CASCADE)
    name = models.CharField(max_length=100)

    class Meta:
        required_db_features = {
            "supports_uuid4_function",
            "supports_expression_defaults",
        }


class Poet(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name


class Poem(models.Model):
    poet = models.ForeignKey(Poet, models.CASCADE)
    name = models.CharField(max_length=100)

    class Meta:
        unique_together = ("poet", "name")

    def __str__(self):
        return self.name