本文是根据 datawhale 开源 Django后端开发入门 做的笔记
Task02:Admin管理员、外键的使用
完成情况
1、创建后台admin管理员
2、在admin.py文件中注册模型
3、更新产品表,引入外键GoodsCategory
4、构建根据分类获取某个分类下的产品API
以上均已测试通过,接口测试使用PAW工具。
遇到的问题及解决办法
问题描述:
对于两个方法都声明了支持POST和GET,但我在接口测试时发现如果将方法修改为GET,即便数据库中有这个分类,但返回结果是不存在。
问题原因:
经过研究发现,GET和POST两个方法,视图函数获取参数的来源不同。
1、在 GET 请求的情况下,视图函数会尝试从查询参数中获取名为 "分类名字" 的值,但测试时没有传入这个参数,并且在方法中默认是从请求数据中读,因此得到的值是 None。
2、在 POST 请求的情况下,视图函数会尝试从请求数据中获取名为 "分类名字" 的值,测试时在请求数据中构造了数据,因此能得到正确的返回值。
解决方法:
在Filter里区分Post和Get做一下处理,然后测试时get在url Params里设置参数就可以了。