Skip to content

Commit ff27bba

Browse files
author
yangxg
committed
Merge pull request jukanntenn#8 from djangoStudyTeam/feature
Feature
2 parents 7f87ba4 + 851a148 commit ff27bba

File tree

15 files changed

+175
-3
lines changed

15 files changed

+175
-3
lines changed

blog/migrations/0001_initial.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- coding: utf-8 -*-
2-
# Generated by Django 1.9.6 on 2016-05-18 04:35
2+
# Generated by Django 1.9.6 on 2016-05-23 11:41
33
from __future__ import unicode_literals
44

55
from django.db import migrations, models
@@ -29,7 +29,7 @@ class Migration(migrations.Migration):
2929
('topped', models.BooleanField(default=False, verbose_name='置顶')),
3030
],
3131
options={
32-
'ordering': ['last_modified_time'],
32+
'ordering': ['-last_modified_time'],
3333
},
3434
),
3535
migrations.CreateModel(

blog_project/settings.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
'django.contrib.messages',
3737
'django.contrib.staticfiles',
3838
'blog',
39+
'usera',
3940
]
4041

4142
MIDDLEWARE_CLASSES = [
@@ -116,3 +117,5 @@
116117

117118
STATIC_URL = '/static/'
118119
STATICFILES = os.path.join(BASE_DIR, 'blog/static')
120+
121+
AUTH_USER_MODEL = 'usera.ForumUser'

blog_project/urls.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,6 @@
1919

2020
urlpatterns = [
2121
url(r'^admin/', admin.site.urls),
22-
url(r'', include('blog.urls', namespace='blog', app_name='blog'))
22+
url(r'', include('blog.urls', namespace='blog', app_name='blog')),
23+
url(r'', include('usera.urls', namespace='usera', app_name='usera'))
2324
]

usera/__init__.py

Whitespace-only changes.

usera/admin.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.contrib import admin
2+
3+
# Register your models here.

usera/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 UseraConfig(AppConfig):
5+
name = 'usera'

usera/forms.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from django import forms
2+
from django.forms import ModelForm
3+
4+
5+
class SignUpForm(ModelForm):
6+
pass
7+
8+
9+
class SignInForm(forms.Form):
10+
pass

usera/migrations/0001_initial.py

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# -*- coding: utf-8 -*-
2+
# Generated by Django 1.9.6 on 2016-05-23 11:41
3+
from __future__ import unicode_literals
4+
5+
from django.conf import settings
6+
import django.contrib.auth.models
7+
import django.core.validators
8+
from django.db import migrations, models
9+
import django.utils.timezone
10+
11+
12+
class Migration(migrations.Migration):
13+
14+
initial = True
15+
16+
dependencies = [
17+
('auth', '0007_alter_validators_add_error_messages'),
18+
]
19+
20+
operations = [
21+
migrations.CreateModel(
22+
name='ForumUser',
23+
fields=[
24+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
25+
('password', models.CharField(max_length=128, verbose_name='password')),
26+
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
27+
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
28+
('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=30, unique=True, validators=[django.core.validators.RegexValidator('^[\\w.@+-]+$', 'Enter a valid username. This value may contain only letters, numbers and @/./+/-/_ characters.')], verbose_name='username')),
29+
('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
30+
('last_name', models.CharField(blank=True, max_length=30, verbose_name='last name')),
31+
('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
32+
('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
33+
('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')),
34+
('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
35+
('mugshot', models.ImageField(upload_to='/uploads', verbose_name='头像')),
36+
('gender', models.CharField(choices=[('M', 'male'), ('F', 'female')], max_length=1, verbose_name='性别')),
37+
('birthday', models.DateField(verbose_name='生日')),
38+
('self_intro', models.TextField(verbose_name='个人简介')),
39+
('sign_up_ip', models.GenericIPAddressField(verbose_name='注册时IP')),
40+
('last_login_time', models.DateTimeField(auto_now=True, verbose_name='最后一次登录时间')),
41+
('last_login_ip', models.GenericIPAddressField(verbose_name='最后一次登录IP')),
42+
('website', models.URLField(verbose_name='个人网站')),
43+
('github', models.URLField(verbose_name='GitHub主页地址')),
44+
('nickname', models.CharField(max_length=20, verbose_name='昵称')),
45+
('sector', models.CharField(max_length=200, verbose_name='所在单位')),
46+
('position', models.CharField(max_length=40, verbose_name='职位')),
47+
('fans', models.ManyToManyField(related_name='_forumuser_fans_+', to=settings.AUTH_USER_MODEL, verbose_name='粉丝')),
48+
('focus_users', models.ManyToManyField(related_name='_forumuser_focus_users_+', to=settings.AUTH_USER_MODEL, verbose_name='关注的人')),
49+
('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')),
50+
('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')),
51+
],
52+
options={
53+
'verbose_name': 'user',
54+
'abstract': False,
55+
'verbose_name_plural': 'users',
56+
},
57+
managers=[
58+
('objects', django.contrib.auth.models.UserManager()),
59+
],
60+
),
61+
]

usera/migrations/__init__.py

Whitespace-only changes.

usera/models.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from django.db import models
2+
from django.contrib.auth.models import AbstractUser
3+
4+
5+
# Create your models here.
6+
class ForumUser(AbstractUser):
7+
GENDER_CHOICES = (
8+
('M', 'male'),
9+
('F', 'female'),
10+
)
11+
mugshot = models.ImageField('头像', upload_to='/uploads')
12+
gender = models.CharField('性别', max_length=1, choices=GENDER_CHOICES)
13+
birthday = models.DateField('生日')
14+
self_intro = models.TextField('个人简介')
15+
sign_up_ip = models.GenericIPAddressField('注册时IP')
16+
last_login_time = models.DateTimeField('最后一次登录时间', auto_now=True)
17+
last_login_ip = models.GenericIPAddressField('最后一次登录IP')
18+
website = models.URLField('个人网站', max_length=200)
19+
github = models.URLField('GitHub主页地址', max_length=200)
20+
nickname = models.CharField('昵称', max_length=20)
21+
sector = models.CharField('所在单位', max_length=200)
22+
position = models.CharField('职位', max_length=40)
23+
focus_users = models.ManyToManyField('self', verbose_name='关注的人', related_name='focus_users')
24+
fans = models.ManyToManyField('self', verbose_name='粉丝', related_name='fans')
25+
26+
def __str__(self):
27+
return self.user_name

0 commit comments

Comments
 (0)