#增加文章 分类 标签
- 前端
- 循环分类列表
- 每个分类是一个input 类型redia value为id
- 循环标签列表
- 每个标签是一个input 类型checkbox value为id
- 后端
POST
- 获取前端传来的 分类名称 标签名称(列表)
- 插入分类的文章
- 无论是否获取到分类 都插入数据
- 插入文章对应的标签关系 09:05-09:20
- 判断是否有标签
- 方式一: 淘汰
- 根据文章的对象 obj.add([标签]) 这种方法不可以 因为第三张表是自己创建的
- 方式二:
- 循环获取到的标签列表 在标签第三张表插入数据
GET
- 找到这个用户的分类
cate_list=models.category.objects.fileter(blog__uesr=request.user)
- 找到这个用户的标签
tag_list=models.Tag.obfects.filter(blog__user=request.user)
- 返回前端
#中介模型 09:20-09:40
- http://www.cnblogs.com/yuanchenqi/articles/7570003.html#_label1
- 为什么创建中介模型
- 举例
- 学生和课程表
class Person(models.Model):
name = models.CharField(max_length=128)
courses = members = models.ManyToManyField("Person")
class Courses(models.Model):
name = models.CharField(max_length=128)
- 多对多关系 每个学生报很多课程
persion = models.objects.filter(user=“老妖”).first
persion.courses.all() #查询
persion.courses.add([1,2,3]) #增加
- 现在有一个需求 增加学生报名的原因 介绍人等等字段
class Person(models.Model):
name = models.CharField(max_length=128)
courses = members = models.ManyToManyField("Person",through='C2P')
class Courses(models.Model):
name = models.CharField(max_length=128)
class C2P(models.Model):
person = models.ForeignKey(Person)
courses = models.ForeignKey(courses)
reasion = models.CharField(max_length=128) #增加字段
- 此时不可以通过ManytoMany自动创建第三张表 所以需要手动创建第三张表哦 增加原因 介绍人字段
- 第三张表增加字段时候需要循环创建第三张表