Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Django REST框架更新日期已创建_Javascript_Django_Django Rest Framework - Fatal编程技术网

Javascript Django REST框架更新日期已创建

Javascript Django REST框架更新日期已创建,javascript,django,django-rest-framework,Javascript,Django,Django Rest Framework,我有一个连接到Django REST框架API的博客应用程序。我可以使用API调用创建、删除和更新帖子,但我很难更新“创建时间”字段。我想做的是在编辑文章时用当前时间更新时间。因此,如果该帖子是在2020年7月21日晚上10点创建的,然后在2020年7月21日晚上10:05进行编辑,我希望时间根据编辑时间进行更改。有没有关于我如何做到这一点的想法。我正在使用这个获取调用来进行更新 var url = "http://127.0.0.1:8000/api/blogs/";

我有一个连接到Django REST框架API的博客应用程序。我可以使用API调用创建、删除和更新帖子,但我很难更新“创建时间”字段。我想做的是在编辑文章时用当前时间更新时间。因此,如果该帖子是在2020年7月21日晚上10点创建的,然后在2020年7月21日晚上10:05进行编辑,我希望时间根据编辑时间进行更改。有没有关于我如何做到这一点的想法。我正在使用这个获取调用来进行更新

var url = "http://127.0.0.1:8000/api/blogs/";
            var type = "POST";

            if (active != null) {
                url = `http://127.0.0.1:8000/api/blogs/${active.id}/`;
                type = "PUT";
            }

            fetch(url, {
                method: type,
                headers: {
                    "Content-type": "application/json",
                    "X-CSRFToken": csrftoken,
                },
                body: JSON.stringify({
                    'title': form.title.value,
                    'body': form.body.value,
                    'user': user,
                })
            }).then(function (response) {
                handlePosts()
                location.reload()
                form.reset()
            })

        })
我试着把新的日期()发送到尸体上,但似乎不起作用。 如果在注释中添加下面的保存方法,则这是my models.py:

class BlogModel(models.Model):

    user = models.ForeignKey(
        UserModel, on_delete=models.SET_NULL, null=True, blank=True)
    title = models.CharField(max_length=200, null=True, blank=True)
    body = models.CharField(max_length=1000, null=True, blank=True)
    created = models.DateTimeField(auto_now_add=True, null=True, blank=True)

    def __str__(self):
        return str(self.user) + ", " + str(self.title)

    def save(self, *args, **kwargs):
       self.created = timezone.now()
       return super().save(*args, **kwargs)

我最初的想法是,我需要覆盖仍在使用的viewset的save方法。。。
感谢您的帮助:D

要更新创建的时间字段,您可以覆盖posts模型的
save()
方法以节省时间。您不需要从前端发送此信息。例如:

from django.utils import timezone


class Post(models.Model):
   ...
   fields
   ...
   

   def save(self, *args, **kwargs):
       self.time_created_field = timezone.now()
       return super().save(*args, **kwargs)

试试这段代码,它会工作的,因为您正在尝试一个PUT请求

听起来不错,但当我实现这个保存方法时,它不会在all@adamkb96请将模型和保存方法添加到问题中
class BlogModel(models.Model):
    user = models.ForeignKey(
        UserModel, on_delete=models.SET_NULL, null=True, blank=True)
    title = models.CharField(max_length=200, null=True, blank=True)
    body = models.CharField(max_length=1000, null=True, blank=True)
    created = models.DateTimeField(auto_now_add=True, null=True, blank=True)

    def __str__(self):
        return str(self.user) + ", " + str(self.title)
    
    def save(self, *args, **kwargs):
        if self.pk:
           self.created = timezone.now()

    super().save(*args, **kwargs)