【发布时间】:2011-09-12 04:54:21
【问题描述】:
当我在模型表单中使用 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中的字段
这是我的模型表单
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
当表单加载时,我需要在表单中自动填充当前日期和时间。告诉我我的代码有什么问题。
【问题讨论】:
-
设置了
auto_now_add后,您的 DateTimeField 定义会是什么样子? -
我曾经这样使用过
modified = models.DateTimeField(auto_now_add = True)。当我给它时,它说意外的关键字参数'auto_now_add -
问题是,当使用表单和
auto_now_add时,DateTimeField不应该在表单中编辑(Django 文档:“按照目前的实现,将 auto_now 或 auto_now_add 设置为 True 将导致该字段设置可编辑=假和空白=真。”)。你到底在哪里得到这个错误?尝试调用表单或其他地方时? -
我已经尝试了所有的组合......它不起作用。
-
或者只是给我在模型中创建日期时间字段的方法以及如何在模型形式中将初始值设置为
datetime.datetime.now()。我从一小时开始尝试,但我没有得到