﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
30969	Add support for query expressions as default values	Johannes Maron	nobody	"Add support for query expressions – like `Now()` – as default values of model fields.

e.g.

{{{
class MyModel(models.Model):
     created = models.DateTimeField(default=models.Now())
}}}

This was originally part of my patch for [#29444](https://code.djangoproject.com/ticket/29444), but I deferred it to keep the changeset more moderate.

There are a couple things here to consider:

1. This feature will only be supported in PostgreSQL and Oracle. Other Databases do allow setting defaults, but can not return them on insert.

2. Since the default is provided by the database, fields with a query expression as a default should default not to be editable. This will avoid confusion in interfaces like, Django admin, since these fields will be empty upon insert and then magically have a value. This is behavior would be consistent with the auto increment fields.

Since I extracted this from another feature branch, the patch is already done. I will link it, as it might help to understand the proposal a bit better.
This is the current patch:
https://github.com/django/django/pull/11783"	Uncategorized	new	Database layer (models, ORM)	dev	Normal				Unreviewed	0	0	0	0	0	0
