Skip to content

Commit a49ccf5

Browse files
committed
updated readme file for changed models.
1 parent a86785c commit a49ccf5

File tree

1 file changed

+114
-24
lines changed

1 file changed

+114
-24
lines changed

README.md

Lines changed: 114 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,56 +16,111 @@ You plan to write a set of models and an assoicated admin for UMSRA researchers.
1616

1717

1818
from django.db import models
19+
from django.utils.text import slugify
1920
from entities.models import Hero, Villain
20-
21+
from django.contrib.auth.models import User
22+
import uuid
23+
2124
class Epic(models.Model):
2225
name = models.CharField(max_length=255)
2326
participating_heroes = models.ManyToManyField(Hero)
2427
participating_villains = models.ManyToManyField(Villain)
25-
26-
28+
29+
2730
class Event(models.Model):
31+
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
2832
epic = models.ForeignKey(Epic, on_delete=models.CASCADE)
2933
details = models.TextField()
3034
years_ago = models.PositiveIntegerField()
31-
32-
35+
36+
3337
class EventHero(models.Model):
3438
event = models.ForeignKey(Event, on_delete=models.CASCADE)
3539
hero = models.ForeignKey(Hero, on_delete=models.CASCADE)
3640
is_primary = models.BooleanField()
37-
38-
41+
42+
3943
class EventVillain(models.Model):
4044
event = models.ForeignKey(Event, on_delete=models.CASCADE)
4145
hero = models.ForeignKey(Villain, on_delete=models.CASCADE)
4246
is_primary = models.BooleanField()
47+
48+
49+
class UserParent(models.Model):
50+
user = models.OneToOneField(
51+
User,
52+
on_delete=models.CASCADE,
53+
primary_key=True,
54+
)
55+
father_name = models.CharField(max_length=100)
56+
mother_name = models.CharField(max_length=100)
57+
58+
class Article(models.Model):
59+
headline = models.CharField(max_length=100)
60+
pub_date = models.DateField()
61+
reporter = models.ForeignKey(User, on_delete=models.CASCADE, related_name='reporter')
62+
slug = models.SlugField()
63+
64+
def save(self, *args, **kwargs):
65+
self.slug = slugify(self.headline)
66+
super(Article, self).save(*args, **kwargs)
67+
def __str__(self):
68+
return self.headline
69+
70+
class Meta:
71+
ordering = ('headline',)
72+
73+
class TempUser(models.Model):
74+
first_name = models.CharField(max_length=100)
75+
76+
class Meta:
77+
managed = False
78+
db_table = "temp_user"
79+
80+
81+
class ColumnName(models.Model):
82+
a = models.CharField(max_length=40,db_column='column1')
83+
column2 = models.CharField(max_length=50)
84+
85+
def __str__(self):
86+
return self.a
4387

4488

4589
#### Entities
4690

4791
from django.db import models
4892

49-
93+
from django.conf import settings
94+
95+
5096
class Category(models.Model):
5197
name = models.CharField(max_length=100)
52-
53-
98+
99+
class Meta:
100+
verbose_name_plural = "Categories"
101+
102+
def __str__(self):
103+
return self.name
104+
105+
54106
class Origin(models.Model):
55107
name = models.CharField(max_length=100)
56-
57-
108+
109+
def __str__(self):
110+
return self.name
111+
112+
58113
class Entity(models.Model):
59114
GENDER_MALE = "Male"
60115
GENDER_FEMALE = "Female"
61116
GENDER_OTHERS = "Others/Unknown"
62-
117+
63118
name = models.CharField(max_length=100)
64119
alternative_name = models.CharField(
65120
max_length=100, null=True, blank=True
66121
)
67-
68-
122+
123+
69124
category = models.ForeignKey(Category, on_delete=models.CASCADE)
70125
origin = models.ForeignKey(Origin, on_delete=models.CASCADE)
71126
gender = models.CharField(
@@ -77,36 +132,54 @@ You plan to write a set of models and an assoicated admin for UMSRA researchers.
77132
)
78133
)
79134
description = models.TextField()
80-
135+
136+
added_by = models.ForeignKey(settings.AUTH_USER_MODEL,
137+
null=True, blank=True, on_delete=models.SET_NULL)
138+
added_on = models.DateField(auto_now=True)
139+
140+
def __str__(self):
141+
return self.name
142+
81143
class Meta:
82144
abstract = True
83-
84-
145+
146+
85147
class Hero(Entity):
86-
148+
149+
class Meta:
150+
verbose_name_plural = "Heroes"
151+
87152
is_immortal = models.BooleanField(default=True)
88-
153+
89154
benevolence_factor = models.PositiveSmallIntegerField(
90155
help_text="How benevolent this hero is?"
91156
)
92157
arbitrariness_factor = models.PositiveSmallIntegerField(
93158
help_text="How arbitrary this hero is?"
94159
)
160+
161+
headshot = models.ImageField(null=True, blank=True, upload_to="hero_headshots/")
162+
95163
# relationships
96164
father = models.ForeignKey(
97-
"self", related_name="+", null=True, blank=True, on_delete=models.SET_NULL
165+
"self", related_name="children", null=True, blank=True, on_delete=models.SET_NULL
98166
)
99167
mother = models.ForeignKey(
100168
"self", related_name="+", null=True, blank=True, on_delete=models.SET_NULL
101169
)
102170
spouse = models.ForeignKey(
103171
"self", related_name="+", null=True, blank=True, on_delete=models.SET_NULL
104172
)
105-
106-
173+
174+
175+
class HeroProxy(Hero):
176+
177+
class Meta:
178+
proxy = True
179+
107180
class Villain(Entity):
108181
is_immortal = models.BooleanField(default=False)
109-
182+
110183
malevolence_factor = models.PositiveSmallIntegerField(
111184
help_text="How malevolent this villain is?"
112185
)
@@ -115,3 +188,20 @@ You plan to write a set of models and an assoicated admin for UMSRA researchers.
115188
)
116189
is_unique = models.BooleanField(default=True)
117190
count = models.PositiveSmallIntegerField(default=1)
191+
192+
193+
class HeroAcquaintance(models.Model):
194+
"Non family contacts of a Hero"
195+
hero = models.OneToOneField(Hero, on_delete=models.CASCADE)
196+
197+
friends = models.ManyToManyField(Hero, related_name="+")
198+
detractors = models.ManyToManyField(Hero, related_name="+")
199+
main_anatagonists = models.ManyToManyField(Villain, related_name="+")
200+
201+
202+
class AllEntity(models.Model):
203+
name = models.CharField(max_length=100)
204+
205+
class Meta:
206+
managed = False
207+
db_table = "entities_entity"

0 commit comments

Comments
 (0)