Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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/2/django/24.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
Python 如何从对象的形式更新时间?_Python_Django - Fatal编程技术网

Python 如何从对象的形式更新时间?

Python 如何从对象的形式更新时间?,python,django,Python,Django,如何从附加到主帖子的对象(文件)的形式更新time_update 型号: # Main class File(BasePost): title = models.CharField(max_length=255, verbose_name=_('Заголовок'), blank=True) time_update = models.DateTimeField(auto_now=True) # it is necessary to update this time when adding

如何从附加到主帖子的对象(文件)的形式更新time_update

型号:

# Main
class File(BasePost):
   title = models.CharField(max_length=255, verbose_name=_('Заголовок'), blank=True)
time_update = models.DateTimeField(auto_now=True) # it is necessary to update this time when adding a nested attachment 

# Attachment   
class Attachment(models.Model):
        post = models.ForeignKey('File', verbose_name=_('Файл'), related_name='attachment', on_delete=models.CASCADE)
        # Created user
        created_by = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_('Добавил'), on_delete=models.SET_DEFAULT, default=1)
        is_published = models.BooleanField(default=True, verbose_name=_('Опубликовано'))
        # Times
        time_create = models.DateTimeField(auto_now_add=True, verbose_name=_('Дата добавления'))
        time_update = models.DateTimeField(auto_now=True, verbose_name=_('Дата обновления'))
观点

我希望有答案)

#导入时区
从django.utils导入时区
在您的
表单中\u有效的
方法

def form_有效(self,form):
form.instance.created_by=self.request.user
form.instance.post_id=self.kwargs['pk']
form.instance.time\u update=timezone.now()
打印(表格数据)
返回super().form_有效(form)

添加了
form.instance.time\u update=timezone.now()
假设字段为
time\u update

是否可以共享您的
附件表单
code既然设置了
auto\u now=True
,那么每次保存对象时都应该自动更新字段。如果你想自己设置它的值,你不能这样做,因为
auto\u now=True
隐式地设置
editable=False
。我知道。但是,将嵌套对象添加到对象时,不会更新主对象。我需要确保当添加嵌套对象时,嵌套对象所附加到的主对象(在我的例子中是文件)也会更新。正在工作!将此添加到def form_valid(self,form):File.objects.filter(pk=self.kwargs['pk']).update(time_update=timezone.now())tnx,但我可能没有正确解释,因为我使用了一个转换器。我添加了我的意思。
# Attachment 
class AttachmentFileCreateView(SuccessMessageMixin, CreateView):
    model = Attachment
    template_name = 'modules/files/attachment_create.html'
    form_class = AttachmentForm
    success_message = "Файл для поста успешно добавлен!"

    def form_valid(self, form):
        form.instance.created_by = self.request.user
        form.instance.post_id = self.kwargs['pk']
        #? how to update time_update included in the post? 
        print(form.cleaned_data)
        return super().form_valid(form)

    def get_success_url(self):
        return reverse_lazy('files:file_detail',
                            kwargs={'cat_slug': self.object.file.category.slug, 'slug': self.object.file.slug})