我有一个如下所示的管理页面:
class NameAdmin(admin.ModelAdmin):
list_display = ['long_name', 'short_name']
search_fields = ['long_name','short_name']
在我的管理页面中,我创建了一个按钮(它被称为" getname"),按下后,应该更新short_name字段(如果它是空的,否则保留它)。但是,插入的文本不应该保存到数据库中,只显示。
如果用户同意该文本,那么只有他按下" Save"然后它应该保存到数据库中。
save_model方法当然不起作用,因为它将它保存到数据库中。
def save_model(self, request, obj, form, change):
if 'getshortname' in request.POST:
if not obj.short_name:
obj.short_name = model_support.parse_shortname(obj.long_name)
有什么想法吗?
非常感谢
答案 0 :(得分:0)
我会在forms.py中创建一个表单:
from django import forms
from myapp.models import MyModel
class MyModelForm(forms.ModelForm):
update_me = forms.CharField(max_length=100, required=False)
class Meta(Object):
model = MyModel
然后在admin.py中:
from django.contrib import admin
from myapp.forms import MyModelForm
class MyModelAdmin(admin.ModelAdmin):
form = MyModelForm
admin.site.register(MyModel, MyModelAdmin)
这样,您在模型中有一个不会保存到数据库的字段,不是必需的,您可以更新它并使用save_model
方法将值传递给您的相关字段模型,以便保存到数据库。