Reputation: 328
I would like to create a column called "date_expiration" in my models.py that takes the current time and adds four days to it. The following code results in an unsupported operand type(s) for +: 'builtin_function_or_method' and 'datetime.timedelta'
because I'm not expliciltly calling the utcnow with parenthesis().
Here is my class with the above error:
class Submission(db.Model):
id = db.Column(db.Integer, primary_key=True)
uri = db.Column(db.String(100), nullable=False)
uri_name = db.Column(db.String(60), nullable=False)
reviewer = db.Column(db.String(50), nullable=False)
url = db.Column(db.String(200), nullable=False)
date_submission = db.Column(db.DateTime, nullable=False,
default=datetime.datetime.utcnow)
date_expiration = db.Column(db.DateTime, nullable=False, default=
(datetime.datetime.utcnow + datetime.timedelta(days=4)))
submission_description = db.Column(db.Text, nullable=False)
What is the proper way to set the date_expiration column?
Upvotes: 0
Views: 1314
Reputation: 493
Try this code for your date_exipiration
column, this would work:
date_expiration = db.Column(db.DateTime, nullable=False, default= (datetime.datetime.today() + datetime.timedelta(days=4)))
Use datetime.datetime.today()
instead of datetime.datetime.utcnow
.
Coz, both are different types, that why you get error.
Upvotes: 2