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