diff --git a/blogging/admin.py b/blogging/admin.py index 1175916..817bcd5 100644 --- a/blogging/admin.py +++ b/blogging/admin.py @@ -1,6 +1,23 @@ + from django.contrib import admin -from blogging.models import Post, Category + +from blogging.models import Post, Category, ModelAdmin2 + + +class ModelAdminClass(admin.TabularInline): + model = ModelAdmin2 + extra = 1 + + +class PostAdmin(admin.ModelAdmin): + inlines = (ModelAdminClass,) + + +class CategoryAdmin(admin.ModelAdmin): + exclude = ('posts',) -admin.site.register(Post) -admin.site.register(Category) +# and a new admin registration +admin.site.register(Post, PostAdmin) +admin.site.register(Category, CategoryAdmin) +# Register your models here. diff --git a/blogging/forms.py b/blogging/forms.py new file mode 100644 index 0000000..ef33ff1 --- /dev/null +++ b/blogging/forms.py @@ -0,0 +1,7 @@ +from django.forms import ModelForm +from blogging.models import Comment + +class MyCommentForm(ModelForm): + class Meta: + model = Comment + fields = ['title', 'text', 'notes'] \ No newline at end of file diff --git a/blogging/migrations/0004_modeladmin2.py b/blogging/migrations/0004_modeladmin2.py new file mode 100644 index 0000000..c7b25e1 --- /dev/null +++ b/blogging/migrations/0004_modeladmin2.py @@ -0,0 +1,22 @@ +# Generated by Django 2.1.1 on 2020-01-15 02:18 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('blogging', '0003_auto_20191104_1942'), + ] + + operations = [ + migrations.CreateModel( + name='ModelAdmin2', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='blogging.Category')), + ('post', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='blogging.Post')), + ], + ), + ] diff --git a/blogging/migrations/0005_comment.py b/blogging/migrations/0005_comment.py new file mode 100644 index 0000000..6a9b829 --- /dev/null +++ b/blogging/migrations/0005_comment.py @@ -0,0 +1,22 @@ +# Generated by Django 2.1.1 on 2020-01-16 04:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('blogging', '0004_modeladmin2'), + ] + + operations = [ + migrations.CreateModel( + name='Comment', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=100)), + ('text', models.CharField(max_length=255)), + ('notes', models.CharField(max_length=255)), + ], + ), + ] diff --git a/blogging/models.py b/blogging/models.py index 10d6cc3..886bb47 100644 --- a/blogging/models.py +++ b/blogging/models.py @@ -1,5 +1,7 @@ -from django.db import models +from django.db import models # <-- This is already in the file from django.contrib.auth.models import User +from django.urls import reverse + class Post(models.Model): title = models.CharField(max_length=128) @@ -9,6 +11,9 @@ class Post(models.Model): modified_date = models.DateTimeField(auto_now=True) published_date = models.DateTimeField(blank=True, null=True) + def get_absolute_url(self): + return reverse('blogging:detail', kwargs={'pk':self.pk}) + def __str__(self): return self.title @@ -22,3 +27,15 @@ class Meta: def __str__(self): return self.name + +class ModelAdmin2(models.Model): + post = models.ForeignKey(Post, on_delete=models.CASCADE) + category = models.ForeignKey(Category, on_delete=models.CASCADE) + +class Comment(models.Model): + title = models.CharField(max_length=100) + text = models.CharField(max_length=255) + notes = models.CharField(max_length=255) + + def __str__(self): # __unicode__ on Python 2 + return self.title \ No newline at end of file diff --git a/blogging/templates/blogging/my_template.html b/blogging/templates/blogging/my_template.html new file mode 100644 index 0000000..6a4577c --- /dev/null +++ b/blogging/templates/blogging/my_template.html @@ -0,0 +1,15 @@ + + + +edit + + + +
+{% csrf_token %} +{{form}} + +