[Django] #25766: adding javascript "this.disabled" invalidate ManyToManyField

4 views
Skip to first unread message

Django

unread,
Nov 16, 2015, 9:37:36 PM11/16/15
to django-...@googlegroups.com
#25766: adding javascript "this.disabled" invalidate ManyToManyField
-------------------------------+--------------------
Reporter: liwee | Owner: nobody
Type: Bug | Status: new
Component: contrib.admin | Version: 1.7
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------
With just models.py and admin.py, I was able to save a poll without any
problems.
But if you add onClick="this.disabled=true; this.form.submit()", trying to
save the poll will cause a problem.

submit_line.html

{{{
{% if show_save_and_continue %}<input onClick="this.disabled=true;
this.form.submit();" type="submit" value="{% trans 'Save and continue
editing' %}" name="_continue" />{% endif %}
}}}

models.py

{{{
from django.db import models

class Question(models.Model):
qn = models.CharField(max_length=200)

def __unicode__(self):
return self.qn

class Poll(models.Model):
name = models.CharField(max_length=200)
qn = models.ManyToManyField(Question)

}}}

admin.py

{{{
from django.contrib import admin
from .models import *

class PollAdmin(admin.ModelAdmin):
filter_horizontal = ('qn',)

admin.site.register(Poll, PollAdmin)
admin.site.register(Question)
}}}

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

Django

unread,
Nov 16, 2015, 9:41:11 PM11/16/15
to django-...@googlegroups.com
#25766: adding javascript "this.disabled" invalidate ManyToManyField
-------------------------------+--------------------------------------

Reporter: liwee | Owner: nobody
Type: Bug | Status: new
Component: contrib.admin | Version: 1.7
Severity: Normal | Resolution:
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------
Changes (by liwee):

* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0


Old description:

> With just models.py and admin.py, I was able to save a poll without any
> problems.
> But if you add onClick="this.disabled=true; this.form.submit()", trying
> to save the poll will cause a problem.
>
> submit_line.html
>
> {{{
> {% if show_save_and_continue %}<input onClick="this.disabled=true;
> this.form.submit();" type="submit" value="{% trans 'Save and continue
> editing' %}" name="_continue" />{% endif %}
> }}}
>

>
> models.py
>
> {{{
> from django.db import models
>
> class Question(models.Model):
> qn = models.CharField(max_length=200)
>
> def __unicode__(self):
> return self.qn
>
> class Poll(models.Model):
> name = models.CharField(max_length=200)
> qn = models.ManyToManyField(Question)
>
> }}}
>
> admin.py
>
> {{{
> from django.contrib import admin
> from .models import *
>
> class PollAdmin(admin.ModelAdmin):
> filter_horizontal = ('qn',)
>
> admin.site.register(Poll, PollAdmin)
> admin.site.register(Question)
> }}}

New description:

With just models.py and admin.py, I was able to save a poll without any
problems.

But if you add onClick="this.disabled=true; this.form.submit()", even if
you try to add qn to the poll, it will not get saved


submit_line.html

{{{
{% if show_save_and_continue %}<input onClick="this.disabled=true;
this.form.submit();" type="submit" value="{% trans 'Save and continue
editing' %}" name="_continue" />{% endif %}
}}}

models.py

{{{
from django.db import models

class Question(models.Model):
qn = models.CharField(max_length=200)

def __unicode__(self):
return self.qn

class Poll(models.Model):
name = models.CharField(max_length=200)
qn = models.ManyToManyField(Question)

}}}

admin.py

{{{
from django.contrib import admin
from .models import *

class PollAdmin(admin.ModelAdmin):
filter_horizontal = ('qn',)

admin.site.register(Poll, PollAdmin)
admin.site.register(Question)
}}}

--

--
Ticket URL: <https://code.djangoproject.com/ticket/25766#comment:1>

Django

unread,
Nov 17, 2015, 7:20:57 AM11/17/15
to django-...@googlegroups.com
#25766: adding javascript "this.disabled" invalidate ManyToManyField
-------------------------------+--------------------------------------
Reporter: liwee | Owner: nobody
Type: Bug | Status: closed
Component: contrib.admin | Version: 1.7
Severity: Normal | Resolution: needsinfo
Keywords: | Triage Stage: Unreviewed

Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------
Changes (by timgraham):

* status: new => closed
* resolution: => needsinfo


Comment:

It's not clear to me how or why this is a bug in Django. It seems to me
that `onClick="this.disabled=true; this.form.submit();"` is something that
you or a third-party package you are using added.

--
Ticket URL: <https://code.djangoproject.com/ticket/25766#comment:2>

Django

unread,
Nov 17, 2015, 7:10:19 PM11/17/15
to django-...@googlegroups.com
#25766: adding javascript "this.disabled" invalidate ManyToManyField
-------------------------------+--------------------------------------
Reporter: liwee | Owner: nobody
Type: Bug | Status: closed
Component: contrib.admin | Version: 1.7
Severity: Normal | Resolution: needsinfo
Keywords: | Triage Stage: Unreviewed

Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------

Comment (by liwee):

I added the javascript to prevent multiple button clicks; Whilst
submitting credit card details for payment, some sites disable the submit
button to prevent multiple payments, I am just trying to mimic that
behaviour.

If you comment {{{filter_horizontal = ('qn',)}}} and try again, saving
will not cause a problem. Originally, I had the impression that it was a
problem with ManyToManyField because I was able to save other fields
without a problem.

--
Ticket URL: <https://code.djangoproject.com/ticket/25766#comment:3>

Django

unread,
Nov 17, 2015, 7:23:45 PM11/17/15
to django-...@googlegroups.com
#25766: adding javascript "this.disabled" invalidate ManyToManyField
-------------------------------+--------------------------------------
Reporter: liwee | Owner: nobody
Type: Bug | Status: closed
Component: contrib.admin | Version: 1.7
Severity: Normal | Resolution: needsinfo
Keywords: | Triage Stage: Unreviewed

Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------

Comment (by timgraham):

I think this is covered by #16730.

--
Ticket URL: <https://code.djangoproject.com/ticket/25766#comment:4>

Reply all
Reply to author
Forward
0 new messages