diff --git a/.gitignore b/.gitignore index df8dfac..ae2a6f6 100644 --- a/.gitignore +++ b/.gitignore @@ -61,4 +61,8 @@ target/ # PyCharm # http://www.jetbrains.com/pycharm/webhelp/project.html .idea -.iml \ No newline at end of file +.iml + + +migrations/ +!migrations/__init__.py \ No newline at end of file diff --git a/accounts/migrations/0001_initial.py b/accounts/migrations/0001_initial.py deleted file mode 100644 index 1d46748..0000000 --- a/accounts/migrations/0001_initial.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.2 on 2016-11-02 12:49 -from __future__ import unicode_literals - -import django.contrib.auth.models -import django.contrib.auth.validators -from django.db import migrations, models -import django.utils.timezone - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('auth', '0008_alter_user_username_max_length'), - ] - - operations = [ - migrations.CreateModel( - name='BlogUser', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('password', models.CharField(max_length=128, verbose_name='password')), - ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), - ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), - ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), - ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), - ('last_name', models.CharField(blank=True, max_length=30, verbose_name='last name')), - ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), - ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), - ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), - ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), - ('nickname', models.CharField(blank=True, max_length=50, verbose_name='昵称')), - ('mugshot', models.ImageField(blank=True, upload_to='upload/mugshots', verbose_name='头像')), - ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), - ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), - ], - options={ - 'verbose_name_plural': 'users', - 'abstract': False, - 'verbose_name': 'user', - }, - managers=[ - ('objects', django.contrib.auth.models.UserManager()), - ], - ), - ] diff --git a/accounts/templatetags/__init__.py b/accounts/templatetags/__init__.py new file mode 100644 index 0000000..09cf369 --- /dev/null +++ b/accounts/templatetags/__init__.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python +# encoding: utf-8 + + +""" +@version: ?? +@author: liangliangyy +@license: MIT Licence +@contact: liangliangyy@gmail.com +@site: https://www.lylinux.org/ +@software: PyCharm +@file: __init__.py +@time: 2016/11/2 下午9:15 +""" \ No newline at end of file diff --git a/blog/migrations/0001_initial.py b/blog/migrations/0001_initial.py deleted file mode 100644 index d3cc219..0000000 --- a/blog/migrations/0001_initial.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.2 on 2016-11-01 15:09 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Article', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=200, verbose_name='标题')), - ('body', models.TextField(verbose_name='正文')), - ('created_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), - ('last_mod_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')), - ('pub_time', models.DateTimeField(blank=True, help_text='不指定发布时间则视为草稿,可以指定未来时间,到时将自动发布。', null=True, verbose_name='发布时间')), - ('status', models.CharField(choices=[('d', '草稿'), ('p', '发表')], max_length=1, verbose_name='文章状态')), - ('summary', models.CharField(blank=True, help_text='可选,若为空将摘取正文的前54个字符。', max_length=200, verbose_name='摘要')), - ('views', models.PositiveIntegerField(default=0, verbose_name='浏览量')), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='作者')), - ], - options={ - 'ordering': ['-pub_time'], - 'verbose_name': '文章', - 'verbose_name_plural': '文章', - }, - ), - migrations.CreateModel( - name='Category', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=30, verbose_name='分类名')), - ('created_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), - ('last_mod_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')), - ], - options={ - 'ordering': ['name'], - 'verbose_name': '分类', - 'verbose_name_plural': '分类', - }, - ), - migrations.CreateModel( - name='Tag', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=30, verbose_name='标签名')), - ('created_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), - ('last_mod_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')), - ], - options={ - 'ordering': ['name'], - 'verbose_name': '标签', - 'verbose_name_plural': '标签', - }, - ), - migrations.AddField( - model_name='article', - name='category', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='blog.Category', verbose_name='分类'), - ), - migrations.AddField( - model_name='article', - name='tags', - field=models.ManyToManyField(blank=True, to='blog.Tag', verbose_name='标签集合'), - ), - ] diff --git a/blog/migrations/0002_article_comment.py b/blog/migrations/0002_article_comment.py deleted file mode 100644 index 689d585..0000000 --- a/blog/migrations/0002_article_comment.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.2 on 2016-11-02 12:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('comments', '0001_initial'), - ('blog', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='article', - name='comment', - field=models.ManyToManyField(blank=True, to='comments.Comment', verbose_name='评论集合'), - ), - ] diff --git a/blog/models.py b/blog/models.py index 0c6f67d..81e111c 100644 --- a/blog/models.py +++ b/blog/models.py @@ -23,7 +23,7 @@ class Article(models.Model): category = models.ForeignKey('Category', verbose_name='分类', on_delete=models.CASCADE) tags = models.ManyToManyField('Tag', verbose_name='标签集合', blank=True) - comment = models.ManyToManyField('comments.Comment', verbose_name='评论集合', blank=True) + def __str__(self): return self.title diff --git a/blog/templatetags/__init__.py b/blog/templatetags/__init__.py new file mode 100644 index 0000000..09cf369 --- /dev/null +++ b/blog/templatetags/__init__.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python +# encoding: utf-8 + + +""" +@version: ?? +@author: liangliangyy +@license: MIT Licence +@contact: liangliangyy@gmail.com +@site: https://www.lylinux.org/ +@software: PyCharm +@file: __init__.py +@time: 2016/11/2 下午9:15 +""" \ No newline at end of file diff --git a/comments/migrations/0001_initial.py b/comments/migrations/0001_initial.py deleted file mode 100644 index 0f6dc05..0000000 --- a/comments/migrations/0001_initial.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.2 on 2016-11-02 12:49 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Comment', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('body', models.TextField(verbose_name='正文')), - ('created_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), - ('last_mod_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='作者')), - ], - options={ - 'verbose_name_plural': '评论', - 'ordering': ['created_time'], - 'verbose_name': '评论', - }, - ), - ] diff --git a/comments/models.py b/comments/models.py index 6a805af..075df24 100644 --- a/comments/models.py +++ b/comments/models.py @@ -1,6 +1,7 @@ from django.db import models from django.conf import settings +from blog.models import Article # Create your models here. @@ -11,6 +12,7 @@ class Comment(models.Model): last_mod_time = models.DateTimeField('修改时间', auto_now=True) author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='作者', on_delete=models.CASCADE) + article = models.ForeignKey(Article, verbose_name='文章', on_delete=models.CASCADE) class Meta: ordering = ['created_time'] diff --git a/comments/templatetags/__init__.py b/comments/templatetags/__init__.py new file mode 100644 index 0000000..09cf369 --- /dev/null +++ b/comments/templatetags/__init__.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python +# encoding: utf-8 + + +""" +@version: ?? +@author: liangliangyy +@license: MIT Licence +@contact: liangliangyy@gmail.com +@site: https://www.lylinux.org/ +@software: PyCharm +@file: __init__.py +@time: 2016/11/2 下午9:15 +""" \ No newline at end of file diff --git a/comments/templatetags/comments_tags.py b/comments/templatetags/comments_tags.py new file mode 100644 index 0000000..66812ca --- /dev/null +++ b/comments/templatetags/comments_tags.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# encoding: utf-8 + + +""" +@version: ?? +@author: liangliangyy +@license: MIT Licence +@contact: liangliangyy@gmail.com +@site: https://www.lylinux.org/ +@software: PyCharm +@file: comments_tags.py +@time: 2016/11/2 下午9:17 +""" + +from django import template +from django.template.loader import render_to_string +from ..models import Comment +from blog.models import Article + +register = template.Library() + + +@register.simple_tag(name='get_comment_count') +def GetCommentCount(parser, token): + #pkid = token + #comments = Comment.objects + return 'wergwergwergwerger' diff --git a/templates/index.html b/templates/index.html index 7095cbb..5f39832 100644 --- a/templates/index.html +++ b/templates/index.html @@ -28,7 +28,12 @@
-

Responsive web design offers us a way forward, finally allowing us to design for the + {% load comments_tags %} + {% get_comment_count for article.pk as num_comments %} + +

+ {{ num_comments }} + Responsive web design offers us a way forward, finally allowing us to design for the ebb and flow of things. There are many variations of passages of Lorem Ipsum available, but