gpt4 book ai didi

django - 在保存时在 Django 的管理面板中操作数据

转载 作者:行者123 更新时间:2023-11-28 19:34:53 25 4
gpt4 key购买 nike

好的,这是瘦子:

# models.py
class Article( models.Model ):
title = models.CharField( max_length = 255 )
author = models.ForeignKey( User )
published_at = models.DateTimeField( auto_now_add = True )
body = models.TextField( )

def __unicode__( self ):
return self.title

# admin.py
from hpccoe.news.models import Article
from django.contrib import admin
from django import forms
from django.forms import widgets

class ArticleAdminForm( forms.ModelForm ):
title = forms.CharField( max_length = 255, required = True )
body = forms.CharField( required = True, widget = widgets.Textarea )

class ArticleAdmin( admin.ModelAdmin ):
fields = [ 'title', 'body' ]
form = ArticleAdminForm

admin.site.register( Article, ArticleAdmin )

如您所见,我省略了管理表单中的作者字段。我想以某种方式在保存之前自动填充它。我如何做到这一点?我过去一个小时一直在谷歌上无果。

提前致谢。

最佳答案

来自Django Docs :

ModelAdmin.save_model(self, request, obj, form, change)

The save_model method is given the HttpRequest, a model instance, a ModelForm instance and a boolean value based on whether it is adding or changing the object. Here you can do any pre- or post-save operations.

For example to attach request.user to the object prior to saving:

from django.contrib import admin

class ArticleAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
obj.user = request.user
super().save_model(request, obj, form, change)

关于django - 在保存时在 Django 的管理面板中操作数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/753704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com