On Monday 08 May 2017 08:18:46 Tim Graham wrote:
> If you have a patch in mind, I'll take a look, however, considering
> there's talk of deprecating those options [0] in favor the
> alternatives that the docs mentioned, I don't think we should spend
> much time reconsidering their semantics.

Interesting read. No one stepped up in 3 years though and for good reason: The 
cure is worse 
then the disease IMHO.

I'll do some more reading to see what the challenges are for a real fix (my gut 
says, fix it at 
the database level, but for Postgres you'd have to install triggers).

Since pre_save only sets the value when appropreate, the patch would only be in 
__init__ and 
deconstruct.

The scope for DateField is like so:

diff --git a/django/db/models/fields/__init__.py 
b/django/db/models/fields/__init
index 0af100efd9..fa4932e670 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -1176,8 +1176,9 @@ class DateField(DateTimeCheckMixin, Field):
                  auto_now_add=False, **kwargs):
         self.auto_now, self.auto_now_add = auto_now, auto_now_add
         if auto_now or auto_now_add:
-            kwargs['editable'] = False
             kwargs['blank'] = True
+        if auto_now:
+            kwargs['editable'] = False
         super(DateField, self).__init__(verbose_name, name, **kwargs)

     def _check_fix_default_value(self):
@@ -1230,8 +1231,10 @@ class DateField(DateTimeCheckMixin, Field):
         if self.auto_now_add:
             kwargs['auto_now_add'] = True
         if self.auto_now or self.auto_now_add:
-            del kwargs['editable']
             del kwargs['blank']
+
+        if self.auto_now:
+            del kwargs['editable']
         return name, path, args, kwargs

     def get_internal_type(self):

> 
> [0] https://code.djangoproject.com/ticket/22995
> 
> On Monday, May 8, 2017 at 10:47:25 AM UTC-4, Melvyn Sopacua wrote:
> > On Monday 08 May 2017 04:07:09 Tim Graham wrote:
> > > The change to raise FieldError for non-editable fields was meant
> > > to
> > > 
> > > prevent bugs, not to block devs from doing what they want.
> > 
> > But auto_now_add without auto_now is not a reason to make the field
> > non-editable. I should be able to use it in a model form, since the
> > update case is unhandled.
> > 
> > 
> > 
> > However, this has always (at least 1.8.x and up) been the case for
> > the field and as you say, it now exposes a bug.
> > 
> > 
> > Melvyn Sopacua

-- 
Melvyn Sopacua

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/1887462.04CIKAfZ9G%40devstation.
For more options, visit https://groups.google.com/d/optout.

Reply via email to