我有一个输入date_added字段,填写时要单击日期和时间,这很令人沮丧。我希望这种情况在幕后发生,甚至不希望它们出现。
我已经四处搜寻并尝试搜索SO,但是在保存表单时无法找到如何执行此操作的摘要。
这是来自的相关内容admin.py:
class BugForm( forms.ModelForm ):
class Media:
#js = ( 'http://static.arounds.org/wmd/wmd.js', )
js = ( 'http://ajax.googleapis.com/ajax/libs/mootools/1.2.3/mootools-yui-compressed.js', 'http://static.arounds.org/js/moowmd.js', 'http://static.arounds.org/js/wmd-config.js' )
css = {
'all': ('http://static.arounds.org/css/wmd.css',)
}
class Meta:
model = Bug
class BugAdmin( admin.ModelAdmin ):
fields = ['name', 'slug', 'excerpt', 'summary', 'date_added', 'poster', 'categories', 'status']
prepopulated_fields = { 'slug' : ['name'] }
form = BugForm
Run Code Online (Sandbox Code Playgroud)
我知道我可能必须指定exclude = ('date_added',)和定义一个def save()函数,但是我不确定为此需要的具体细节。
我希望这种情况在幕后发生,甚至不希望它们出现。
恕我直言,做到这一点的最佳方法是编辑模型并auto_now_add=True为 date_added现场设置。这假设您有权编辑模型。您将执行以下操作:
class Bug(models.Model):
...
date_added = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
这将解决您的两个问题:它将自动填写日期时间,并且不会显示在“管理”应用中。从文档:
首次创建对象时,将字段自动设置为现在。对于创建时间戳很有用。请注意,始终使用当前日期。它不仅是您可以覆盖的默认值。
我想指出,auto_now您可以使用一个补充来跟踪更新。设置auto_now=True对date_updated字段(如果有)很有用。
| 归档时间: |
|
| 查看次数: |
1552 次 |
| 最近记录: |