APPEND_SLASH=False 在你设置文件里面添加下。
一般就是你的请求url带不带最后的/
pycharm社区版无法通过自带的新建来创建DRF项目,可以通过社区版的终端执行:
django-admin startproject project_name
来新建Django项目
还得需要报错的代码片段
你这环境和python解释器啥的没配置好啊
发现问题了,自己画蛇添足,在Response里给了content_type='application/json',去掉以后ok了
pycharm中的话,这样:
File -Settings打开设置,在 Editor - File and Templates中,找到你想配置的模板:
或者,项目中,点击右键,在创建文件的菜单中,有个`Edit File Templates`,编辑文件模板。点进去:
找到`Python Script`。
然后把想添加的内容塞到这里,新创建文件时,就会默认添加对应的文件头。
我用的文件头:
#! python3 # -*- coding: UTF-8 -*- '''================================================= @Project -> File :${PROJECT_NAME} -> ${NAME} @IDE :${PRODUCT_NAME} @Author :George Gao @Date :${DATE} ${TIME} @Desc : =================================================='''
新创建文件生成的文件头:
#! python3 # -*- coding: UTF-8 -*- ''' ================================================= @Project -> File :drf_tutorial -> serializers @IDE :PyCharm @Author :George Gao @Date :2023/4/6 17:41 @Desc : ================================================== '''
认证,路由配置检查
可以用zh-cn处理一下
这个最好是要用户再重新去登录一下,更新一下token
有遇到的吗?帮忙回答一下,谢谢!
就是更新时间的
需要对其给予权限
jack老师好像没有drf的实战课程,可以看一下bobby老师的 django restframework课程。
就是请求的地址
应该是重写 list ,create, update这些方法吧,这些方法里才返回Response对象
我知道了
同问啊,有回答的吗?
models里面带了字段类型
price = models.DecimalField(max_digits=6,decimal_places=2,help_text='课程价格')
你put修改的price值是不符合DecimalField验证~
解决了
dj_drf.urls路由是不是有问题,提示路径无法匹配~
queryset = X.objects.get(id=1)
因为你用了全局的权限认证,所以要直到认证谁,要把用户对象给到权限认证模块
没改东西又可以了,莫名其妙啊
class CourseSerializer(serializers.ModelSerializer): teacher = serializers.ReadOnlyField(source='teacher.username') # 外键字段只读 class Meta: model = Course # exclude = ("id",) # 注意元组中只有1个元素时不能写成("id") # fields = ('name', 'introduction', 'teacher', 'price') fields = '__all__' depth = 2 # class CourseSerializer(serializers.HyperlinkedModelSerializer): # teacher = serializers.ReadOnlyField(source='teacher.username') # 外键字段只读 # class Meta: # model = Course # # url是默认值, 可在settings.py中设置URL_FIELD_NAME使全局生效 # fields = ('id','url', 'name', 'introduction', 'teacher', 'price')
用上面的
新建用户的时候应该是不会默认生成Token的吧
就是导入视图,别慌 慢慢学 ^_^
请注意,通用视图将检查适当的对象级别权限,但是,如果您要编写自己的自定义视图,则需要确保自己检查对象级别权限。您可以通过self.check_object_permissions(request, obj)
在拥有对象实例后从视图中进行调用来实现。APIException
如果任何对象级权限检查失败,则此调用将引发适当的调用,否则将简单地返回。
还要注意,通用视图将仅检查对象级权限以获取检索单个模型实例的视图。如果需要列表视图的对象级过滤,则需要单独过滤查询集。有关更多详细信息,请参见过滤文档。
我明白了,但过滤依然 不懂,付费课程可以学到吗?