【发布时间】:2019-06-21 03:29:57
【问题描述】:
我正在尝试使用 django 信号获取更新的字段。当我使用更新视图更新模型并调用 post_save 时,我在 kwargs 中将 update_fields 设置为 None。 如何使用 django 信号获取更新的字段?
信号.py
from .models import Department
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(post_save, sender=Department)
def department_history(sender, created, **kwargs):
update = kwargs['update_fields']
views.py
class DepartmentEditView(LoginRequiredMixin, SuccessMessageMixin,PermissionRequiredMixin, UpdateView):
model = Department
form_class = DepartmentForm
success_url = reverse_lazy('departments:departments')
success_message ="%(department_name)s was Updated Sucessfully "
template_name_suffix = '_update'
permission_required = ('departments.change_department',)
【问题讨论】:
-
尝试更改为
def department_history(sender, instance=Department(), created, update_fields, **kwargs):并再次检查update_fields -
我还是没有
-
试试这个:
def department_history(sender, instance, created, **kwargs): if created: update = kwargs['update_fields'] -
在更新过程中创建的是假的,只有在创建它是真的参考:-docs.djangoproject.com/en/2.1/topics/signals/…
标签: django django-signals