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 [email protected].
To post to this group, send email to [email protected].
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.