#30969: Add support for query expressions as default values
-------------------------------------+-------------------------------------
               Reporter:  Johannes   |          Owner:  nobody
  Hoppe                              |
                   Type:             |         Status:  new
  Uncategorized                      |
              Component:  Database   |        Version:  master
  layer (models, ORM)                |
               Severity:  Normal     |       Keywords:
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 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

-- 
Ticket URL: <https://code.djangoproject.com/ticket/30969>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/052.96bddaaf8af11ec773fc17a9e25d7cb7%40djangoproject.com.

Reply via email to