Python 如何从对象的形式更新时间?
如何从附加到主帖子的对象(文件)的形式更新time_update 型号: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
# 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})