在Django'中操作数据;保存上的管理面板
好的,下面是瘦子:在Django'中操作数据;保存上的管理面板,django,django-admin,foreign-keys,save,Django,Django Admin,Foreign Keys,Save,好的,下面是瘦子: # 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 = mo
# 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 )
如您所见,我省略了Admin表单中的author字段。我想在保存之前自动填充它。我如何做到这一点?我在谷歌上呆了一个小时都没用
提前感谢。来自:
class ArticleAdmin( admin.ModelAdmin ):
fields = [ 'title', 'body' ]
form = ArticleAdminForm
def save_model(self, request, obj, form, change):
obj.author = "name Here"
obj.save()
save\u model
方法提供了HttpRequest
、一个模型实例、一个ModelForm
实例和一个基于是添加还是更改对象的布尔值。在这里,您可以执行任何保存前或保存后操作
例如,要在保存前将request.user
附加到对象,请执行以下操作:
ModelAdmin.save_model(self, request, obj, form, change)
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)