Red*_*eda 4 django django-models django-admin django-views
我目前有一个调用is_active模型的布尔字段。每当我在 Django 管理中手动设置此字段True(最初它是 false)时,我希望它执行某个操作。当设置为 时,如何触发 Django 中的此字段来执行此特定操作True?
我听说过一种save_model()方法,但我不知道它是如何工作的。
class Company(models.Model):
name = models.CharField(max_length=100, unique=True)
is_active = models.BooleanField(default=False)
def __str__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
Wil*_*sem 10
您确实可以save_model(..)重写ModelAdmin. 该form参数包含Form模型管理中的 ,您可以检查.changed_data[Django-doc]以检查值是否更改:
from app.models import Company
from django.contrib import admin
class CompanyAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
field = 'is_active'
super().save_model(request, obj, form, change)
if change and field in form.changed_data and form.cleaned_data.get(field):
# ... do a certain action
pass
admin.site.register(Company, CompanyAdmin)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1938 次 |
| 最近记录: |