summaryrefslogtreecommitdiff
path: root/tests/model_indexes/models.py
blob: 3bda6069047f1a6a5590a76013d9d2685b3ea595 (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
from django.db import models


class Book(models.Model):
    title = models.CharField(max_length=50)
    author = models.CharField(max_length=50)
    pages = models.IntegerField(db_column="page_count")
    shortcut = models.CharField(max_length=50, db_tablespace="idx_tbls")
    isbn = models.CharField(max_length=50, db_tablespace="idx_tbls")
    barcode = models.CharField(max_length=31)

    class Meta:
        indexes = [
            models.Index(fields=["title"]),
            models.Index(fields=["isbn", "id"]),
            models.Index(
                fields=["barcode"], name="%(app_label)s_%(class)s_barcode_idx"
            ),
        ]


class AbstractModel(models.Model):
    name = models.CharField(max_length=50)
    shortcut = models.CharField(max_length=3)

    class Meta:
        abstract = True
        indexes = [
            models.Index(fields=["name"]),
            models.Index(fields=["shortcut"], name="%(app_label)s_%(class)s_idx"),
        ]


class ChildModel1(AbstractModel):
    pass


class ChildModel2(AbstractModel):
    pass