Django和直接数据库操作

2024-06-16 08:52:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个项目,客户机必须登录到数据库并手动在那里输入数据。是的,直接访问,不要问为什么!在

当我想用当前的日期和日期来修改我要应用的时间表时。在

我用的是MySQL。在

所以我创建了我的模型。。在

class Atlantis(models.Model):
    description = models.TextField('description', max_length=200 ,  default = None,null=True,blank=True)
    amount = models.IntegerField('Amount', default=0)
    quantity = models.IntegerField('Quantity', default=0)
    inserted = models.BooleanField(default=False)
    update_chk = models.BooleanField(default=False) 
    created = models.DateTimeField(auto_now=True,auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)

def save(self, *args, **kwargs):
    ''' On save, update timestamps '''
    if not self.id:
        self.created = timezone.now()
    self.modified = timezone.now()
    return super(Atlantis, self).save(*args, **kwargs)

当我向数据库添加数据时,所创建的字段并不是用当前时间戳自动完成的。在

我试图更改数据库中的表,并将created field的默认设置更改为CURRENT_TIMESTAMP,但出现了一个错误。在

所以我在问,我所要求的能做到吗?在


Tags: 数据self数据库falsetruedefaultautomodels
2条回答

我也有同样的问题试试这个:

def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
  self._meta.local_fields = [f for f in self._meta.local_fields if f.name not in ('your_field')]
  super(Atlantis, self).save(force_insert, force_update, using, update_fields)

这对我有帮助

所以我修改了mySQL表。。。并将datetime字段更改为timestamp。Django将其读作时间戳。所以没有问题。是mySQL的版本导致了这个问题。日期时间戳不能与当前时间字段一起使用。在

相关问题 更多 >