自动填充DateTimeField在django表单中不起作用

时间:2011-06-10 03:42:05

标签: django forms datetime

我在模型表单中使用auto_now_add时出现以下错误。

TypeError: __init__() got an unexpected keyword argument 'auto_now_add'

这是我的模型字段

modified = models.DateTimeField(blank = True)

表格声明。我在其中一篇文章DateTimeField Not Working中看到过 添加initial = datetime.datetime.now以自动填充

import datetime

modified = forms.DateTimeField(initial = datetime.datetime.now) - 当我使用此功能时,不会出现错误,但日期时间不会自动填充。

我在self.fields['modified']中使用过相同的内容 - 仍然没有用

以上任何陈述均无效。有人帮我这个。


我在这里粘贴了所有的模型类和模型表 模型类

class Users(models.Model):
  name = models.CharField(max_length = 100)
  role = models.ForeignKey(RolesConfig, db_column = 'role')
  level = models.ForeignKey(LevelConfig, db_column = 'level')
  team_name = models.ForeignKey(TeamNamesConfig, db_column = 'team_name')
  location = models.ForeignKey(LocationConfig, db_column = 'location')
  modified = models.DateTimeField(blank = True)
  class Meta:
     db_table = u'users'
     def __str__(self):
            return "%s" % (self.ldap)
     def __unicode__(self):
         return u'%s' % (self.ldap)

我在phpmyadmin修改了字段

Modified field structure

这是我的ModelForm

class TargetForm(forms.ModelForm):
    modified = forms DateTimeField(initial = datetime.datetime.now)
    def __init__(self, *args, **kwargs):
       super(MMPodTargetForm, self).__init__(*args, **kwargs)    
       self.fields['modified'] = forms.DateTimeField(initial = datetime.datetime.now)
    class Meta:
       model = models.Users

当表单加载时,我需要在表单中自动填充当前日期和时间。告诉我我的代码中有什么不对。

1 个答案:

答案 0 :(得分:1)

我认为错误是因为您要将auto_now_add额外参数添加到表单而不是模式。尝试将模型更改为以下内容以查看是否可以解决问题(未经测试):

class Users(models.Model):
  name = models.CharField(max_length = 100)
  role = models.ForeignKey(RolesConfig, db_column = 'role')
  level = models.ForeignKey(LevelConfig, db_column = 'level')
  team_name = models.ForeignKey(TeamNamesConfig, db_column = 'team_name')
  location = models.ForeignKey(LocationConfig, db_column = 'location')
  modified = models.DateTimeField(auto_now = True)
  class Meta:
     db_table = u'users'
     def __str__(self):
            return "%s" % (self.ldap)
     def __unicode__(self):
     return u'%s' % (self.ldap)