django rest framework

各位好,我在model中设置了时间为`auto_created=True',如下代码:

class Common(models.Model):
    create_time = models.DateTimeField(auto_created=True)
    update_time = models.DateTimeField(auto_now_add=True)
    disable = models.IntegerField(default=0)

    class Meta:
        abstract=True

video继承自Common,代码如下:

class Video(common.Common):
    crawler_config = models.ForeignKey(crawler_config.CrawlerConfig, on_delete=models.CASCADE)
    # 视频标题
    video_title = models.CharField("视频标题",max_length=500)
    # 视频预览图片存放地址
    video_preview_url = models.CharField("视频预览图片存放地址",max_length=500)
    # 视频点击数
    video_hits = models.CharField("视频点击数",max_length=50)
    # 视频长度
    video_length = models.CharField("视频长度",max_length=50)
    # 视频原始Id
    video_original_id = models.CharField("视频原始Id",max_length=10)
    # 视频原始URL
    video_original_url = models.CharField("视频原始URL",max_length=500)
    # 视频现存地址
    video_new_url = models.CharField("视频现存地址",max_length=500)
    # 视频网站URL
    video_site_url = models.CharField("视频网站URL",max_length=500)
    # 视频是否已被下载
    video_active = models.IntegerField(default=0)
    # 视频原始地址是否有效
    video_original_url_disable = models.IntegerField(default=0)

    def __str__(self):
        return self.video_title

serializers 如下:

class VideoSerializer(serializers.ModelSerializer):
    class Meta:
        model = video.Video
        fields = "__all__"

views如下:

class VideoViewSet(viewsets.ModelViewSet):

    """
        retrieve:
            返回指定视频信息

        list:
            返回视频集合

        create:
            创建一个新的视频

        delete:
            移除一个已经存在的视频

        partial_update:
            更新视频信息的一个或多个字段

        update:
            更新视频信息
    """

    queryset = video.Video.objects.all()
    serializer_class = video_serializer.VideoSerializer

urls如下:

router = routers.DefaultRouter()
router.register(r'videos', views.VideoViewSet)
router.register(r'crawlerconfigs', views.CrawlerConfigViewSet)
router.include_format_suffixes = False

urlpatterns = format_suffix_patterns([
    url(r'^docs/', schema_view, name="docs"),
    path('', include(router.urls))
])

当我尝试调用post方法创建一个新的video的时候,提示我必须传递create_time参数:

请求数据结构如下:

{
  "create_time": "string",
  "disable": 0,
  "video_title": "string",
  "video_preview_url": "string",
  "video_hits": "string",
  "video_length": "string",
  "video_original_id": "string",
  "video_original_url": "string",
  "video_new_url": "string",
  "video_site_url": "string",
  "video_active": 0,
  "video_original_url_disable": 0,
  "crawler_config": 0
}

但是我明明在model中指定了时间在创建该字段或者更新该字段的时候自动插入,我该怎么才能在post创建的时候不设置该字段?

谢谢各位!

评论 0