代码之家  ›  专栏  ›  技术社区  ›  meder omuraliev

如何为我的管理员条目自动填写DateTimeField?

  •  1
  • meder omuraliev  · 技术社区  · 14 年前

    date_added 我的条目和它的沮丧点击日期和时间时,填写这些字段。我希望这一切发生在幕后,我甚至不希望这些出现。

    以下是来自 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
    

    我知道我可能得详细说明一下 exclude = ('date_added',) 定义一个 def save() 功能,但我不确定具体需要什么。

    1 回复  |  直到 14 年前
        1
  •  6
  •   Manoj Govindan    14 年前

    最好的方法是编辑模型并设置 auto_now_add=True date_added 现场。这假设您有权编辑模型。你可以这样做:

    class Bug(models.Model):
        ...
        date_added = models.DateTimeField(auto_now_add=True)
    

    这将解决您的两个问题:它将自动填写日期和时间 不会出现在管理应用程序中。从文档中:

    我想指出的是,有一个补充 auto_now 可用于跟踪更新的。设置 auto_now=True 将有助于 date_updated 字段(如有)。