Col*_*ein 43 django foreign-keys save django-admin
好的,所以这里是瘦的:
# 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 )
Run Code Online (Sandbox Code Playgroud)
如您所见,我在Admin窗体中省略了author字段.我想以某种方式在保存之前自动填充它.我该如何做到这一点?我在谷歌的最后一小时一直无济于事.
提前致谢.
小智 66
来自Django Docs:
ModelAdmin.save_model(self, request, obj, form, change)
Run Code Online (Sandbox Code Playgroud)
该
save_model方法根据是添加还是更改对象给出HttpRequest模型实例,ModelForm实例和布尔值.在这里,您可以执行任何保存前或保存后操作.例如,
request.user在保存之前附加到对象:
class ArticleAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
obj.user = request.user
obj.save()
Run Code Online (Sandbox Code Playgroud)
Mik*_*ike 17
class ArticleAdmin( admin.ModelAdmin ):
fields = [ 'title', 'body' ]
form = ArticleAdminForm
def save_model(self, request, obj, form, change):
obj.author = "name Here"
obj.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28665 次 |
| 最近记录: |