Django REST Framework:可浏览API表单中的默认字段

 721252060_96ee43 发布于 2023-02-11 19:07

我有一个模特:

class XCall(models.Model):
    created_on = models.DateTimeField(auto_now_add=True)
    send_on = models.DateTimeField(default=datetime.now)
    recipient = models.ForeignKey(User)
    text = models.CharField(max_length=4096)
    backup_calls = models.IntegerField(blank=True, null=True)

并为该模型的序列化器:

class CallSerializer(serializers.HyperlinkedModelSerializer):
    url = serializers.HyperlinkedIdentityField(
        view_name='call-detail',
    )
    # some validation and custom field definitions
    ...

    class Meta:
        model = XCall
        fields = ('url', 'id', 'text', 'recipient', 'send_on', 'backup_calls', 'status')
        lookup_field= 'pk'

这是列表视图:

class CallList(generics.ListCreateAPIView):
    serializer_class = CallSerializer
    permission_classes = (permissions.IsAuthenticatedOrReadOnly, IsOwnerOrSuperuser,)

    def pre_save(self, obj):
        auth_user = self.request.user
        obj.auth_user = auth_user

    def get_queryset(self):
        """
        This view should return a list of all the calls
        for the currently authenticated user.
        """
        auth = self.request.user
        if isinstance(auth, AnonymousUser):
            return []
        elif auth.is_superuser:
            return XCall.objects.all()
        else:
            return XCall.objects.filter(auth_user=auth)

在可CallList浏览的API中,我在底部的POST表单中看到以下内容: 在此输入图像描述

我的问题是:为什么没有设置默认值send_on,有一个用于backup_calls?我假设表单将遵循XCall模型规范并datetime.now()用于默认前者,并backup_calls留空(因为它可以为空).如何让表格符合模型规格?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有