{% load staticfiles %}
#base.html
{% block custom_bread %}
{% endblock %}
#org-list.html
{% block custom_bread %}
- 首页>
- 课程机构
{% endblock %}
#apps/organizations/views.py
from apps.organizations.models import CourseOrg
class OrgView(View):
def get(self, request, *args, **kwargs):
all_orgs = CourseOrg.objects.all()
return render(request, "org-list.html",{
"all_orgs":orgs,
})
#templates/org-list.html
{% for org in all_orgs.object_list %}
-
-
课程数:{{org.course_nums}}
学习人数:{{org.students}}
- {{ org.address }}
- 经典课程:
{% for course in org.courses %}
{{course.cname}}
{% endfor %}
c语言基础
数据库基础
联系
服务
{% endfor %}
#apps/organizations/models.py
class CourseOrg(BaseModel):
org_name = models.CharField(max_length=50, verbose_name="机构名称")
desc = models.TextField(verbose_name="描述")
tag = models.CharField(default="全国知名", max_length=10, verbose_name="机构标签")
category = models.CharField(default="pxjg", verbose_name="机构类别", max_length=4,
choices=(("pxjg", "培训机构"), ("gr", "个人"), ("gx", "高校")))
click_nums = models.IntegerField(default=0, verbose_name="点击数")
fav_nums = models.IntegerField(default=0, verbose_name="收藏数")
image = models.ImageField(upload_to="org/%Y/%m", verbose_name="logo", max_length=100)
address = models.CharField(max_length=150, verbose_name="机构地址")
students = models.IntegerField(default=0, verbose_name="学习人数")
course_nums = models.IntegerField(default=0, verbose_name="课程数")
is_auth = models.BooleanField(default=False, verbose_name="是否认证")
is_gold = models.BooleanField(default=False, verbose_name="是否金牌")
city = models.ForeignKey(City, on_delete=models.CASCADE, verbose_name="所在城市")
def courses(self):
from apps.course.models import Course
courses = Course.objects.filter(course_org=self)
return courses
class Meta:
verbose_name = "课程机构"
verbose_name_plural = verbose_name
def __str__(self):
return self.org_name
#apps/course/models.py
from apps.organizations.models import CourseOrg
class Course(BaseModel):
teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE, verbose_name="讲师")
course_org = models.ForeignKey(CourseOrg,related_name='org_name+', null=True, blank=True,max_length=50,on_delete=models.SET_NULL, verbose_name="课程机构")
cname = models.CharField(verbose_name="课程名", max_length=50,default="")
desc = models.CharField(verbose_name="课程描述", max_length=300)
learn_times = models.IntegerField(default=0, verbose_name="学习时长(分钟数)")
degree = models.CharField(verbose_name="难度", choices=(("cj", "初级"), ("zj", "中级"), ("gj", "高级")), max_length=2)
students = models.IntegerField(default=0, verbose_name='学习人数')
fav_nums = models.IntegerField(default=0, verbose_name='收藏人数')
click_nums = models.IntegerField(default=0, verbose_name="点击数")
notice = models.CharField(verbose_name="课程公告", max_length=300, default="")
category = models.CharField(default="后端开发", max_length=20, verbose_name="课程类别")
tag = models.CharField(default="", verbose_name="课程标签", max_length=10)
youneed_know = models.CharField(default="", max_length=300, verbose_name="课程须知")
teacher_tell = models.CharField(default="", max_length=300, verbose_name="老师告诉你")
is_classics = models.BooleanField(default=False, verbose_name="是否经典")
detail = models.TextField(verbose_name="课程详情")
image = models.ImageField(upload_to="courses/%Y/%m", verbose_name="封面图", max_length=100)
def courses(self):
from apps.course.models import Course
courses = Course.objects.filter(course_org=self)
return courses
class Meta:
verbose_name = "课程信息"
verbose_name_plural = verbose_name
def __str__(self):
return self.cname