Django admin 后台修改数据的时候,怎么在渲染表单之前对数据进行修改?

Django admin 后台修改数据的时候,怎么在渲染表单之前对数据进行修改?

文章信息和内容用两张表存,使用一对一的关联在一块儿的,有个需求,在后台修改信息的时候想要对内容进行一些修改

即:在修改信息时,将数据渲染到表单之前对数据进行一些修改

这个字段还是 inlines 模型的字段


回答:

用get_form方法:

from django.contrib import admin

from .models import Article, ArticleContent # 模型

class ArticleContentInline(admin.StackedInline):

model = ArticleContent

# 其他设置...

class ArticleAdmin(admin.ModelAdmin):

inlines = [

ArticleContentInline,

]

def get_form(self, request, obj=None, **kwargs):

form = super().get_form(request, obj=obj, **kwargs)

if obj:

article_content = obj.articlecontent # 假设一对一关联的related_name是'articlecontent'

# 数据修改

article_content.content = article_content.content.upper()

article_content.save()

return form

admin.site.register(Article, ArticleAdmin)

以上是 Django admin 后台修改数据的时候,怎么在渲染表单之前对数据进行修改? 的全部内容, 来源链接: utcz.com/p/938997.html

回到顶部