Skip to content

Commit 34a1588

Browse files
committed
filter grade and subject
1 parent c1f7e54 commit 34a1588

File tree

8 files changed

+84
-131
lines changed

8 files changed

+84
-131
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ wheels/
2323
*.egg-info/
2424
.installed.cfg
2525
*.egg
26+
.idea/
2627

2728
# PyInstaller
2829
# Usually these files are written by a python script from a template

db.sqlite3

1 KB
Binary file not shown.

homepage/admin.py

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,17 @@
11
# -*- coding: UTF-8 -*-
22

33
from django.contrib import admin
4-
from .models import Article,Person,TeacherInfo,GradeSubjectMenu,GradeInfo,SubjectInfo
4+
from .models import Teacher,GradeSubject,Subject
55

66
# Register your models here.
77
# fields = ('subject_name','intro')#排除一些不想被其他人编辑[不填]的fields
88
# search_fields = ('subject_name','slug','intro')
99

10-
class ArticleAdmin(admin.ModelAdmin):
11-
list_display = ('title','pub_date','update_time',)
1210

13-
class PersonAdmin(admin.ModelAdmin):
14-
list_display = ('full_name',)
11+
class TeacherAdmin(admin.ModelAdmin):
12+
list_display = ('first_name','last_name')
1513

16-
class TeacherInfoAdmin(admin.ModelAdmin):
17-
list_display = ('tec_title',)
18-
19-
class GradeSubjectMenuAdmin(admin.ModelAdmin):
20-
list_display = ('display',)
21-
22-
class GradeInfoAdmin(admin.ModelAdmin):
14+
class GradeSubjectAdmin(admin.ModelAdmin):
2315
list_display = ('level','slug','intro')
2416
filter_horizontal = ('subject',)
2517

@@ -29,10 +21,6 @@ class SubjectInfoAdmin(admin.ModelAdmin):
2921

3022

3123

32-
33-
admin.site.register(Article,ArticleAdmin)
34-
admin.site.register(Person,PersonAdmin)
35-
admin.site.register(TeacherInfo,TeacherInfoAdmin)
36-
admin.site.register(GradeSubjectMenu,GradeSubjectMenuAdmin)
37-
admin.site.register(GradeInfo,GradeInfoAdmin)
38-
admin.site.register(SubjectInfo,SubjectInfoAdmin)
24+
admin.site.register(Teacher,TeacherAdmin)
25+
admin.site.register(GradeSubject,GradeSubjectAdmin)
26+
admin.site.register(Subject,SubjectInfoAdmin)

homepage/migrations/0001_initial.py

Lines changed: 21 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# -*- coding: utf-8 -*-
2-
# Generated by Django 1.10.1 on 2017-07-30 03:01
2+
# Generated by Django 1.10.1 on 2017-08-09 16:32
33
from __future__ import unicode_literals
44

55
from django.db import migrations, models
6+
import django.db.models.deletion
67

78

89
class Migration(migrations.Migration):
@@ -14,17 +15,7 @@ class Migration(migrations.Migration):
1415

1516
operations = [
1617
migrations.CreateModel(
17-
name='Article',
18-
fields=[
19-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
20-
('title', models.CharField(max_length=256, verbose_name='title')),
21-
('content', models.TextField(verbose_name='content')),
22-
('pub_date', models.DateTimeField(auto_now_add=True, verbose_name='publish-time')),
23-
('update_time', models.DateTimeField(auto_now=True, null=True, verbose_name='update-time')),
24-
],
25-
),
26-
migrations.CreateModel(
27-
name='GradeInfo',
18+
name='GradeSubject',
2819
fields=[
2920
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
3021
('level', models.CharField(max_length=100, verbose_name='\u5e74\u7ea7\u7b49\u7ea7')),
@@ -33,25 +24,7 @@ class Migration(migrations.Migration):
3324
],
3425
),
3526
migrations.CreateModel(
36-
name='GradeSubjectMenu',
37-
fields=[
38-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
39-
('tab_grade', models.CharField(max_length=20)),
40-
('tab_grade_dsc', models.CharField(max_length=20)),
41-
('tab_subject', models.CharField(max_length=20)),
42-
('tab_subject_dsc', models.CharField(max_length=20)),
43-
],
44-
),
45-
migrations.CreateModel(
46-
name='Person',
47-
fields=[
48-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
49-
('first_name', models.CharField(max_length=50)),
50-
('last_name', models.CharField(max_length=50)),
51-
],
52-
),
53-
migrations.CreateModel(
54-
name='SubjectInfo',
27+
name='Subject',
5528
fields=[
5629
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
5730
('subject_name', models.CharField(max_length=100, verbose_name='\u79d1\u76ee\u540d\u79f0')),
@@ -60,22 +33,28 @@ class Migration(migrations.Migration):
6033
],
6134
),
6235
migrations.CreateModel(
63-
name='TeacherInfo',
36+
name='Teacher',
6437
fields=[
6538
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
66-
('tec_title', models.CharField(max_length=100)),
67-
('tec_age', models.IntegerField(default=0)),
68-
('tec_area', models.CharField(max_length=50)),
69-
('tec_info', models.CharField(max_length=200)),
70-
('tec_limit_price', models.FloatField(default=0)),
71-
('tec_max_price', models.FloatField(default=0)),
72-
('tec_evaluation_num', models.IntegerField(default=0)),
73-
('tec_other_info', models.CharField(max_length=100)),
39+
('first_name', models.CharField(max_length=50)),
40+
('last_name', models.CharField(max_length=50)),
41+
('age', models.IntegerField(default=0)),
42+
('gender', models.CharField(choices=[('S', 'Sec'), ('M', 'Male'), ('F', 'Female')], max_length=2)),
43+
('area', models.CharField(max_length=50)),
44+
('info', models.CharField(max_length=200)),
45+
('limit_price', models.FloatField(default=0)),
46+
('max_price', models.FloatField(default=0)),
47+
('evaluation_num', models.IntegerField(default=0)),
48+
('other_info', models.CharField(max_length=100)),
49+
('pub_date', models.DateTimeField(auto_now_add=True, verbose_name='publish-time')),
50+
('update_time', models.DateTimeField(auto_now=True, null=True, verbose_name='update-time')),
51+
('skill', models.ManyToManyField(to='homepage.GradeSubject', verbose_name='\u6280\u80fd')),
52+
('skill2', models.ForeignKey(default='default', on_delete=django.db.models.deletion.CASCADE, to='homepage.Subject', verbose_name='\u6280\u80fd2')),
7453
],
7554
),
7655
migrations.AddField(
77-
model_name='gradeinfo',
56+
model_name='gradesubject',
7857
name='subject',
79-
field=models.ManyToManyField(to='homepage.SubjectInfo', verbose_name='\u79d1\u76ee\u5217\u8868'),
58+
field=models.ManyToManyField(to='homepage.Subject', verbose_name='\u79d1\u76ee\u5217\u8868'),
8059
),
8160
]

homepage/models.py

Lines changed: 37 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,26 @@
11
# -*- coding: UTF-8 -*-
22

33
from __future__ import unicode_literals
4-
54
from django.db import models
65

76
# Create your models here.
8-
class Article(models.Model):
9-
title = models.CharField('title', max_length=256)
10-
content = models.TextField('content')
7+
# class Article(models.Model):
8+
# title = models.CharField('title', max_length=256)
9+
# content = models.TextField('content')
1110

12-
pub_date = models.DateTimeField('publish-time', auto_now_add=True, editable = True)
13-
update_time = models.DateTimeField('update-time',auto_now=True, null=True)
11+
# pub_date = models.DateTimeField('publish-time', auto_now_add=True, editable = True)
12+
# update_time = models.DateTimeField('update-time',auto_now=True, null=True)
1413

15-
def __unicode__(self):
16-
return self.title
17-
18-
class Person(models.Model):
19-
first_name = models.CharField(max_length=50)
20-
last_name = models.CharField(max_length=50)
21-
22-
def my_property(self):
23-
return self.first_name + ' ' + self.last_name
24-
my_property.short_description = "Full name of the person"
25-
full_name = property(my_property)
14+
# def __unicode__(self):
15+
# return self.title
2616

27-
class TeacherInfo(models.Model):
28-
tec_title = models.CharField(max_length=100)
29-
tec_age = models.IntegerField(default=0)
30-
tec_area = models.CharField(max_length=50)
31-
tec_info = models.CharField(max_length=200)
32-
tec_limit_price = models.FloatField(default=0)
33-
tec_max_price = models.FloatField(default=0)
34-
tec_evaluation_num = models.IntegerField(default=0)
35-
tec_other_info = models.CharField(max_length=100)
36-
37-
def __unicode__(self):
38-
return self.tec_title
39-
40-
class GradeSubjectMenu(models.Model):
41-
tab_grade = models.CharField(max_length=20)
42-
tab_grade_dsc = models.CharField(max_length=20)
43-
tab_subject = models.CharField(max_length=20)
44-
tab_subject_dsc = models.CharField(max_length=20)
17+
GENDER_CHOICES = (
18+
('S', 'Sec'),
19+
('M', 'Male'),
20+
('F', 'Female'),
21+
)
4522

46-
def my_property(self):
47-
return self.tab_grade + '-' + self.tab_subject
48-
my_property.short_description = "Grade Subject"
49-
display = property(my_property)
50-
51-
def __unicode__(self):
52-
return self.my_property()
53-
54-
class SubjectInfo(models.Model):
23+
class Subject(models.Model):
5524
#grade_level = models.ForeignKey(Grade, verbose_name='所属年级')
5625
subject_name = models.CharField("科目名称",max_length = 100)
5726
slug = models.CharField("科目地址",max_length = 100)
@@ -65,11 +34,32 @@ class SubjectInfo(models.Model):
6534
def __unicode__(self):
6635
return self.subject_name#在路径地址中有显示
6736

68-
class GradeInfo(models.Model):
37+
class GradeSubject(models.Model):
6938
level = models.CharField("年级等级",max_length = 100)
7039
slug = models.CharField("等级地址",max_length = 100)
7140
intro = models.CharField("等级介绍",max_length = 100)
72-
subject = models.ManyToManyField(SubjectInfo,verbose_name = "科目列表")
41+
subject = models.ManyToManyField(Subject,verbose_name = "科目列表")
42+
43+
def __unicode__(self):
44+
return self.level
45+
46+
47+
class Teacher(models.Model):
48+
first_name = models.CharField(max_length=50)
49+
last_name = models.CharField(max_length=50)
50+
age = models.IntegerField(default=0)
51+
gender = models.CharField(max_length=2, choices=GENDER_CHOICES)
52+
area = models.CharField(max_length=50)
53+
info = models.CharField(max_length=200)
54+
limit_price = models.FloatField(default=0)
55+
max_price = models.FloatField(default=0)
56+
evaluation_num = models.IntegerField(default=0)
57+
skill = models.ManyToManyField(GradeSubject,verbose_name = "grade_subject")
58+
skill2 = models.ForeignKey(Subject,default='default',verbose_name = "subject")
59+
other_info = models.CharField(max_length=100)
60+
61+
pub_date = models.DateTimeField('publish-time', auto_now_add=True, editable = True)
62+
update_time = models.DateTimeField('update-time',auto_now=True, null=True)
7363

7464
def __unicode__(self):
75-
return self.level
65+
return self.first_name + '.' + self.last_name

homepage/views.py

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from django.shortcuts import render,render_to_response
44
from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger
55
from django.http import HttpResponse
6-
from .models import TeacherInfo,GradeSubjectMenu,GradeInfo
6+
from .models import Teacher,GradeSubject
77

88

99

@@ -15,36 +15,30 @@ def welcome(request):
1515
def index(request):
1616
grade_level = request.GET.get('grade_level')
1717
subject_level = request.GET.get('subject_level')
18-
age = '4'
19-
tec_info_list_all = TeacherInfo.objects.filter(tec_age=age)
2018

21-
#tec_info_list_all = TeacherInfo.objects.all()
19+
tec_info_list_all = []
20+
for tec_info in Teacher.objects.all():
21+
if not subject_level == tec_info.skill2.slug:
22+
continue
23+
for ti in tec_info.skill.all():
24+
if grade_level == ti.slug:
25+
tec_info_list_all.append(tec_info)
26+
break
27+
2228
paginator = Paginator(tec_info_list_all, 3)
2329
page = request.GET.get('page')
24-
25-
2630
try:
2731
tec_info_list = paginator.page(page)
2832
except PageNotAnInteger:
2933
tec_info_list = paginator.page(1)
3034
except EmptyPage:
3135
tec_info_list = paginator.page(paginator.num_pages)
3236

33-
#grade_subject_dict = {}
34-
#grade_dict = GradeSubjectMenu.objects.values('tab_grade').distinct()
35-
#for grade in grade_dict:
36-
# key = grade['tab_grade']
37-
# grade_subject_dict[key] = GradeSubjectMenu.objects.filter(tab_grade=key)
38-
39-
grade_subject_info = GradeInfo.objects.all()
40-
#for grade in grade_subject_info:
41-
# for sub in grade.subject.all():
42-
# print sub.subject_name
43-
44-
#return render_to_response('index.html',{
45-
# 'tec_info_list':tec_info_list,
46-
# 'grade_subject_info':grade_subject_info})
47-
return render_to_response('index.html',locals())
37+
grade_subject_info = GradeSubject.objects.all()
38+
return render_to_response('index.html',{
39+
'tec_info_list':tec_info_list,
40+
'grade_subject_info':grade_subject_info})
41+
# return render_to_response('index.html',locals())
4842

4943

5044
def loadjsonfile():

sync.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#!/bin/bash
22
python manage.py makemigrations
33
python manage.py migrate
4+
# python manage.py createsuperuser
45

testapp/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
from django.template import RequestContext
55
from django.views.decorators.csrf import csrf_exempt
66

7-
from homepage.models import TeacherInfo
7+
from homepage.models import Teacher
88
from .models import User
99

1010

1111

1212
# Create your views here.
1313
def listing(request):
14-
contact_list = TeacherInfo.objects.all()
14+
contact_list = Teacher.objects.all()
1515
paginator = Paginator(contact_list, 2) # Show 25 contacts per page
1616

1717
page = request.GET.get('page')

0 commit comments

Comments
 (0)