本文共 1582 字,大约阅读时间需要 5 分钟。
新知识点不多
1 建Serializer
from .models import UserLeavingMessage, UserFavclass LeavingMessageSerializer(serializers.ModelSerializer):# 跟用户收藏一样 不显示user字段 user = serializers.HiddenField( default=serializers.CurrentUserDefault() )# 自定义格式化 设置只读。这样在添加留言的时候就不需要添加该字段的内容了# format 格式化输出 add_time = serializers.DateTimeField(read_only=True, format='%Y-%m-%d %H:%M') class Meta: model = UserLeavingMessage# id 是用于删除的时候前端能有对应的id fields = ('user', 'msg_type', 'subject', 'message', 'file', 'id', 'add_time')
views.py
from .models import UserFav, UserLeavingMessagefrom .serializers import UserFavSerializer, UserFavDetailSerializer, LeavingMessageSerializerclass LeavingMessageViewset(mixins.CreateModelMixin, mixins.ListModelMixin, mixins.DestroyModelMixin, viewsets.GenericViewSet): """ list: 获取用户留言 create: 添加留言 delete: 删除留言功能 """ serializer_class = LeavingMessageSerializer permission_classes = (IsAuthenticated,) authentication_classes = (JSONWebTokenAuthentication, SessionAuthentication)# 只返回当前用户的留言信息 def get_queryset(self): return UserLeavingMessage.objects.filter(user=self.request.user)
urls.py
from user_operation.views import UserFavViewset, LeavingMessageViewsetrouter.register('messages', LeavingMessageViewset, base_name='messages')
models.py
class UserLeavingMessage(models.Model):# 添加 upload_to参数 file = models.FileField(upload_to="message/images/", verbose_name=u'上传的文件', help_text=u'上传的文件')
执行效果
添加完内容后的get请求结果
这里有一个要说下
前端传递文件给后端 ,而在后端我们啥都没做 他就把前端的文件解析并存储起来了
是因为使用了解析器
具体可参考官方文档
完结 撒花
转载地址:http://zsepi.baihongyu.com/