Skip to content

Commit a73bf10

Browse files
committed
Add the blog app and model
1 parent b53c70b commit a73bf10

File tree

9 files changed

+92
-0
lines changed

9 files changed

+92
-0
lines changed

mysite/apps/blog/__init__.py

Whitespace-only changes.

mysite/apps/blog/admin.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from django.contrib import admin
2+
from .models import Post
3+
# Register your models here.
4+
@admin.register(Post)
5+
class PostAdmin(admin.ModelAdmin):
6+
list_display = ('title', 'slug', 'author', 'status', 'publish')
7+
list_filter = ('status', 'created', 'publish', 'author')
8+
search_fields = ('title', 'body')
9+
prepopulated_fields = {'slug': ('title',)}
10+
raw_id_fields = ('author',)
11+
date_hierarchy = 'publish'
12+
ordering = ('status', 'publish')

mysite/apps/blog/apps.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from django.apps import AppConfig
2+
3+
4+
class BlogConfig(AppConfig):
5+
name = 'blog'
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Generated by Django 3.1.3 on 2020-11-23 12:51
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
import django.utils.timezone
7+
8+
9+
class Migration(migrations.Migration):
10+
11+
initial = True
12+
13+
dependencies = [
14+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
15+
]
16+
17+
operations = [
18+
migrations.CreateModel(
19+
name='Post',
20+
fields=[
21+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
22+
('title', models.CharField(max_length=250)),
23+
('slug', models.SlugField(max_length=250, unique_for_date='created')),
24+
('body', models.TextField()),
25+
('status', models.CharField(choices=[('draft', 'Draft'), ('published', 'Published')], default='draft', max_length=10)),
26+
('created', models.DateTimeField(auto_now_add=True)),
27+
('updated', models.DateTimeField(auto_now=True)),
28+
('publish', models.DateTimeField(default=django.utils.timezone.now)),
29+
('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='blog_posts', to=settings.AUTH_USER_MODEL)),
30+
],
31+
options={
32+
'ordering': ('-publish',),
33+
},
34+
),
35+
]

mysite/apps/blog/migrations/__init__.py

Whitespace-only changes.

mysite/apps/blog/models.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from django.db import models
2+
from django.utils import timezone
3+
from django.contrib.auth import get_user_model
4+
5+
# Create your models here.
6+
7+
User = get_user_model()
8+
9+
class Post(models.Model):
10+
STATUS_CHOICES = (
11+
('draft', 'Draft'),
12+
('published', 'Published'),
13+
)
14+
title = models.CharField(max_length=250)
15+
slug = models.SlugField(max_length=250,
16+
unique_for_date='created')
17+
author = models.ForeignKey(User,
18+
related_name='blog_posts',
19+
on_delete=models.CASCADE)
20+
body = models.TextField()
21+
status = models.CharField(max_length=10,
22+
choices=STATUS_CHOICES,
23+
default='draft')
24+
created = models.DateTimeField(auto_now_add=True)
25+
updated = models.DateTimeField(auto_now=True)
26+
publish = models.DateTimeField(default=timezone.now)
27+
28+
class Meta:
29+
ordering = ('-publish',)
30+
31+
def __str__(self):
32+
return self.title

mysite/apps/blog/tests.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.test import TestCase
2+
3+
# Create your tests here.

mysite/apps/blog/views.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.shortcuts import render
2+
3+
# Create your views here.

mysite/settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
'django.contrib.sessions',
4141
'django.contrib.messages',
4242
'django.contrib.staticfiles',
43+
44+
'mysite.apps.blog',
4345
]
4446

4547
MIDDLEWARE = [

0 commit comments

Comments
 (0)