Skip to content

Commit bb3b74e

Browse files
committed
Add custom models and managers
1 parent b404381 commit bb3b74e

File tree

3 files changed

+64
-1
lines changed

3 files changed

+64
-1
lines changed

contact/managers.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from django.db import models
2+
3+
4+
class ContactManager(models.Manager):
5+
def all(self):
6+
return self.get_queryset()
7+
8+
def active(self, *args, **kwargs):
9+
return super(ContactManager, self).filter(active=True)

contact/migrations/0001_initial.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Generated by Django 3.2.8 on 2021-10-23 01:27
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
initial = True
9+
10+
dependencies = [
11+
]
12+
13+
operations = [
14+
migrations.CreateModel(
15+
name='Contact',
16+
fields=[
17+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18+
('firstname', models.CharField(max_length=100)),
19+
('lastname', models.CharField(max_length=100)),
20+
('email', models.EmailField(max_length=255, unique=True)),
21+
('subject', models.CharField(max_length=255)),
22+
('message', models.TextField(max_length=2000)),
23+
('active', models.BooleanField(default=False)),
24+
('created', models.DateTimeField(auto_now_add=True)),
25+
],
26+
options={
27+
'ordering': ['-created'],
28+
},
29+
),
30+
]

contact/models.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
from datetime import datetime
2+
13
from django.db import models
24

3-
# Create your models here.
5+
from contact.managers import ContactManager
6+
7+
8+
class Contact(models.Model):
9+
"""
10+
Models for contacts.
11+
"""
12+
firstname: str = models.CharField(max_length=100)
13+
lastname: str = models.CharField(max_length=100)
14+
email: str = models.EmailField(unique=True, max_length=255)
15+
subject: str = models.CharField(max_length=255)
16+
message: str = models.TextField(max_length=2000)
17+
active: bool = models.BooleanField(default=False)
18+
created: datetime = models.DateTimeField(auto_now=False, auto_now_add=True)
19+
20+
objects = ContactManager()
21+
22+
class Meta:
23+
ordering=["-created"]
24+
25+
def __str__(self) -> str:
26+
return f"{self.email}"
27+

0 commit comments

Comments
 (0)