forked from django-json-api/django-rest-framework-json-api
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmodels.py
52 lines (36 loc) · 1.33 KB
/
models.py
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
from django.db import models
class DJAModel(models.Model):
"""
Base for test models that sets app_label, so they play nicely.
"""
class Meta:
app_label = "tests"
abstract = True
class BasicModel(DJAModel):
text = models.CharField(max_length=100)
class Meta:
ordering = ("id",)
# Models for relations tests
# ManyToMany
class ManyToManyTarget(DJAModel):
name = models.CharField(max_length=100)
class ManyToManySource(DJAModel):
name = models.CharField(max_length=100)
targets = models.ManyToManyField(ManyToManyTarget, related_name="sources")
# ForeignKey
class ForeignKeyTarget(DJAModel):
name = models.CharField(max_length=100)
class ForeignKeySource(DJAModel):
name = models.CharField(max_length=100)
target = models.ForeignKey(
ForeignKeyTarget, related_name="sources", on_delete=models.CASCADE
)
class NestedRelatedSource(DJAModel):
m2m_sources = models.ManyToManyField(ManyToManySource, related_name="nested_source")
fk_source = models.ForeignKey(
ForeignKeySource, related_name="nested_source", on_delete=models.CASCADE
)
m2m_targets = models.ManyToManyField(ManyToManyTarget, related_name="nested_target")
fk_target = models.ForeignKey(
ForeignKeyTarget, related_name="nested_target", on_delete=models.CASCADE
)