Skip to content

Commit 5765e26

Browse files
authored
DOCSP-46325: Models (#9)
* DOCSP-46325: Models * edits * more info * edit * fixes * toc * snooty * remove unsupported fields * jib feedback * meta options * RM feedback * SR feedback
1 parent a7004fe commit 5765e26

File tree

3 files changed

+547
-2
lines changed

3 files changed

+547
-2
lines changed

source/includes/model-data/models.py

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# start-models
2+
from django.db import models
3+
4+
class Movie(models.Model):
5+
title = models.CharField(max_length=200)
6+
plot = models.TextField(blank=True)
7+
runtime = models.IntegerField(default=0)
8+
released = models.DateTimeField("release date", null=True, blank=True)
9+
10+
class Meta:
11+
db_table = "movies"
12+
managed = False
13+
14+
def __str__(self):
15+
return self.title
16+
# end-models
17+
18+
# start-json-field
19+
from django.db import models
20+
21+
class Movie(models.Model):
22+
title = models.CharField(max_length=200)
23+
plot = models.TextField(blank=True)
24+
runtime = models.IntegerField(default=0)
25+
released = models.DateTimeField("release date", null=True, blank=True)
26+
imdb = models.JSONField(null=True, blank=True)
27+
28+
class Meta:
29+
db_table = "movies"
30+
managed = False
31+
32+
def __str__(self):
33+
return self.title
34+
# end-json-field
35+
36+
# start-array-field
37+
from django.db import models
38+
from django_mongodb_backend.fields import ArrayField
39+
40+
class Movie(models.Model):
41+
title = models.CharField(max_length=200)
42+
plot = models.TextField(blank=True)
43+
runtime = models.IntegerField(default=0)
44+
released = models.DateTimeField("release date", null=True, blank=True)
45+
genres = ArrayField(
46+
models.CharField(max_length=100),
47+
size=5,
48+
null=True,
49+
blank=True)
50+
51+
class Meta:
52+
db_table = "movies"
53+
managed = False
54+
55+
def __str__(self):
56+
return self.title
57+
# end-array-field
58+
59+
# start-embedded-field
60+
from django.db import models
61+
from django_mongodb_backend.models import EmbeddedModel
62+
from django_mongodb_backend.fields import EmbeddedModelField
63+
64+
class Award(EmbeddedModel):
65+
wins = models.IntegerField(default=0)
66+
nominations = models.IntegerField(default=0)
67+
text = models.CharField(max_length=100)
68+
69+
class Meta:
70+
managed = False
71+
72+
class Movie(models.Model):
73+
title = models.CharField(max_length=200)
74+
plot = models.TextField(blank=True)
75+
runtime = models.IntegerField(default=0)
76+
released = models.DateTimeField("release date", null=True, blank=True)
77+
awards = EmbeddedModelField(Award, null=True, blank=True)
78+
79+
class Meta:
80+
db_table = "movies"
81+
managed = False
82+
83+
def __str__(self):
84+
return self.title
85+
# end-embedded-field

source/model-data.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ Model Your Data
2222
:titlesonly:
2323
:maxdepth: 1
2424

25-
.. TODO:
2625
Create Models </model-data/models>
26+
27+
.. TODO:
2728
Create Indexes </model-data/models>
2829

2930
In this section, you can learn how to create and customize
@@ -33,4 +34,4 @@ your Django models for use with MongoDB.
3334
types and Django's model configuration features.
3435

3536
- :ref:`django-indexes`: Learn how to create indexes by modifying your
36-
model classes.
37+
model classes.

0 commit comments

Comments
 (0)