外键查找:
后段:
class Teacherstudent(APIView):
# 反向查询必须用get 因为filter是一个结果集不能用
def get(self,request,pk):
# 要找id为9的学生
# 先找到id为9的老师
# 再找他明下的所以学生
t1=Teacher.objects.get(id=pk)
# stus就是我们获取的所以学信息
stus = t1.student_set.all()
ser = S(stus,many=True)
# 将stus转换为序列化
return Response(ser.data)
前段:
老师页面:
<router-link v-slot="{navigate}" :to="/DenVue2vue/+ mun.id " custom>
<th @click="navigate">
{{mun.name}}
</th>
</router-link>
注意学生页面的路由也有变化:
{
path: ‘/DenVue2vue/:id’,(加上了id)
name: ‘DenVue2vue’,
component: DenVue2vue
},
学生页面:
mounted(){
console.log(this.$route.params.id)
// 接收页面传过来的id让路由变为动态
Axios.get('http://127.0.0.1:8000/teastu/' + this.$route.params.id + "/")
.then(app=>{
console.log(app)
this.list = app.data
}).catch(nii=>{
console.log(nii)
})
}
下拉框:
在vue添加学生页面写:
// 因为是外键下啦框显示的是teacher表中的数据
// 所以要请求获取数据把名字渲染要下拉框中
mounted(){
get(‘/teacher/’)
.then(ioo=>{
console.log(ioo.data)
this.list = ioo.data
}).catch(njj=>{
console.log(njj)
})
},