views.py
def when(request):
if request.method == 'POST':
reportform = ReportForm(data=request.POST)
if reportform.is_valid():
log.debug("test:%s",reportform)
report = reportform.save(commit=False)
report.user = request.user
report.save()
models.py是
class Report(models.Model):
user = models.ForeignKey(User, null=False)
incident_number = models.CharField('Incident Number', max_length=100)
device_id = models.CharField('Device Id', max_length=100)
app_uuid = models.CharField('Unique App Id', max_length=100)
created_date_time = models.DateTimeField('Created')
manual_date_time = models.DateTimeField('Another time', null=True, blank=True)
sent_date_time = models.DateTimeField('Sent')
在上面的模型中,,manual_date_time
由用户手动输入。但是created_date_time
和send_date_time
应该由django生成,因为该功能尚未在我的应用中实现,django给出了以下内容错误“(1048, "Column 'created_date_time' cannot be null")".
如何使用表单对其进行硬编码并发送该值以便我可以手动输入日期和时间。想要使用form将硬编码值传递给created_date_time
和`send_date_time。如何解决此错误。
答案 0 :(得分:3)
好吧,你可以做几件事来解决这个问题:
首先,您可以为Django添加属性auto_now=True
,以便在创建对象时自动添加now()
日期。
created_date_time = models.DateTimeField('Created', auto_now=True)
您还可以向DateTimeField添加默认值,如下所示:
created_date_time = models.DateTimeField('Created', default=datetime.now)
并且您还可以像Null=true
一样添加manual_date_time
,以便将其添加到具有空值的数据库中。
此外,您可以在创建对象时手动添加日期,如下所示:
from datetime import datetime
if reportform.is_valid():
log.debug("test:%s",reportform)
report = reportform.save(commit=False)
report.user = request.user
report.created_date_time = datetime.now()
report.save()
sent_date_time
字段也一样。
希望它有所帮助。