javascript - Django Admin: Pre-populating values from POST or GET? -
in django 1.2.4 site, direct user admin page pre-filled out values, based on current data working with. example:
{% person in people %} <tr> <td>{{person}}</td> <td><a href='admin/foo/bar/add?name={{person}}'>create foo {{person}}</td> </tr> {% endfor %}
then, when user clicks on link, name
field pre-populated value {{person}}
.
does django admin interface support doing this? django admin forms use post, i'm not sure how add post data request template.
or, set variables, use custom javascript in form set values accordingly.
according source code (and quick test), django support use of parameters initial values modelforms in admin. supports many-to-many relations.
did try this? maybe it's missing slash @ end of url.
admin/foo/bar/add?name=foobar
probably gets redirected ...
admin/foo/bar/add/
... dropping querystring. try add slash there , see if works.
admin/foo/bar/add/?name={{ person }}
update (prefilling boolean fields)
just in case else having problems prefilling boolean fields:
if pass value @ in querystring, e.g. admin/foo/bar/add/?is_active=foo
, prefill is_active
field true (since non-empty string truthy value). therefore, if want "uncheck" checkbox given field, pass no value @ all, admin/foo/bar/add/?is_active=
this snippet of code add_view
method on modeladmin
responsible using parameters initial values. http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/options.py#l878
# prepare dict of initial data request. # have special-case m2ms list of comma-separated pks. initial = dict(request.get.items()) k in initial: try: f = opts.get_field(k) except models.fielddoesnotexist: continue if isinstance(f, models.manytomanyfield): initial[k] = initial[k].split(",") form = modelform(initial=initial)
Comments
Post a Comment