Django-grappelli: рдХреНрд░реЛрдо, рдПрдлрдПрдл рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рдлрд╝рд┐рд▓реНрдЯрд░ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдЕрдЧре░ 2011  ┬╖  31рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sehmaschine/django-grappelli

рдореИрдВрдиреЗ рдЕрднреА Django 1.4.0 рдЕрд▓реНрдлрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ django-grappelli 2.3.4 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдкрд░рд┐рд╡рд░реНрддрди рд╕реВрдЪреА рдкреГрд╖реНрда рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдмреЙрдХреНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╕рдм рдареАрдХ рд╣реИред рдХреНрд░реЛрдо рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ:

Uncaught TypeError: Object #<Object> has no method 'actions'
(anonymous function):8000/admin/msdb/incident/:59
c.extend.readyjquery-1.4.2.min.js:26
L

рдХреЛрдб рдХрд╛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдмрд┐рдЯ templates/admin/change_list.html рдореЗрдВ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдлрд┐рдХреНрд╕ рдмреНрд▓реЙрдХ рдХреЛ рд▓реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

{% if action_form %}
  ...
{% endif %}

{{ media.js }} рдХреЗ рдареАрдХ рдмрд╛рдж, рдкрдВрдХреНрддрд┐ 19 рд╕реЗ рдиреАрдЪреЗ рдкрдВрдХреНрддрд┐ 65 рддрдХред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ actions.js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ media.js рджреНрд╡рд╛рд░рд╛ рдирд┐рд╣рд┐рдд рдмреНрд▓реЙрдХ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ _after_ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдЖрддрд╛ рд╣реИред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ Django рдХреЛрдб рдЕрднреА рднреА рдЕрд▓реНрдлрд╛ рдореЗрдВ рд╣реЛрдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛ред

рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ grp_collapsible рджреНрд╡рд╛рд░рд╛ $#$ templates/admin/includes_grappelli/header.html $#$ рдореЗрдВ рдПрдХ рдФрд░ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ:

Uncaught TypeError: Object #<Object> has no method 'grp_collapsible'

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред
рдЕрдЬрдЧрд░ 2.7, рдбреАрдЬреЗрдВрдЧреЛ 1.9.6, рдЧреНрд░реЗрдкреЗрд▓реА 2.8.1

рд╕рднреА 31 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдкрдиреЗ django 1.3 рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛?

рдХреЛрдИ рдЦреЗрдж рдирд╣реАрдВред рдмрд╕ 1.4.0aред рдореИрдВ рдереЛрдбрд╝рд╛ рдШрдмрд░рд╛рдпрд╛ рд╣реБрдЖ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рд╣реИ
рдПрдХ рдЧреНрд░реЗрдкреЗрд▓реА рдЪреАрдЬ: рдЯреЗрдореНрдкрд▓реЗрдЯ рдЪреЗрдВрдЬ_рд▓рд┐рд╕реНрдЯ рдФрд░ рдСрд░реНрдбрд░ рдХрд╛ рдХреНрд░рдо
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд▓реЛрдб/рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд░рд┐рдкреЛрд░реНрдЯ рджрд╛рдЦрд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдереЛрдбрд╝реА рдЬрд▓реНрджрдмрд╛рдЬреА рдХреА рд╣реЛ, рдХрдареЛрд░ рдирд╣реАрдВ
рд╡рд┐рднрд┐рдиреНрди django рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд - рдХреНрд╖рдорд╛ рдХрд░реЗрдВ!

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ ... рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЧреНрд░реЗрдкреЗрд▓реА-рддреНрд░реБрдЯрд┐ рд╣реИред рдЕрдиреНрдпрдерд╛ рд╕реИрдХрдбрд╝реЛрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдРрд╕рд╛ рд╣реИред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ 1.4.0a рдХреЗ рдХрд╛рд░рдг рд╣реИ ... рдФрд░ рдЧреНрд░реЗрдкреЗрд▓реА рд╣рдореЗрд╢рд╛ рдирд╡реАрдирддрдо рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рд▓реАрдЬ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реИ - рдлрд╝рд┐рд▓реНрдЯрд░ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдХрд╛рдлреА рд╕рдордп рд╕реЗ django-trunk рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ swashbuckler рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛, рдореИрдВрдиреЗ рдХреЛрдб рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдЧреНрд░реЗрдкреЗрд▓реА рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдирд╣реАрдВ рдЫреБрдЖ рд╣реИред

рдпрджрд┐ рдЧреНрд░реЗрдкреЗрд▓реА рдХреЛ рдбреАрдЬреЗрдВрдЧреЛ-рдЯреНрд░рдВрдХ рдХреЗ рд╕рд╛рде рдЕрджреНрдпрддрд┐рдд рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдПрдХ рдРрд╕рд╛ рдореБрджреНрджрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ Django 1.4 рдХреЗ рд╕рд╛рде contrib.admin рдореАрдбрд┐рдпрд╛ рдХреЛ STATIC_URL рдкрд░ рд▓реЗ рдЬрд╛рдирд╛ рдФрд░ ADMIN_MEDIA_PREFIX рдХреЛ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░рдирд╛ рд╣реИред

рдЕрдЧрд░ рдЖрдк рдореЗрд░реА рдЖрдЦрд┐рд░реА рдЯрд┐рдкреНрдкрдгреА рдкрдврд╝рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЧреНрд░реЗрдкреЗрд▓реА рдбреАрдЬреЗрдВрдЧреЛрд╕ рдЯреНрд░рдВрдХ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд╣реБрдд рдЬрд▓реНрджреА рдкрдврд╝рд╛ :)

рдореИрдВ рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ djangos рдЯреНрд░рдВрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдбреЙрдХреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рдиреЛрдЯ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЧреНрд░реЗрдкреЗрд▓реА рдХреЛ рд╣рдореЗрд╢рд╛ рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рдбреАрдЬреЗрдВрдЧреЛ рд░рд┐рд▓реАрдЬ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ рдЬрд╛рд░реА 1.4 рдХреЗ рд╕рд╛рде рдмрдиреА рд╣реБрдИ рд╣реИред рдХреЛрдИ рдореМрдХрд╛ рдпрд╣ рддрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдПрдХ рдмрд╛рд░ рдЧреНрд░реЗрдкреЗрд▓реА django 1.4 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛ рдЬрд╛рдиреЗ рдкрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛

рдХреНрдпрд╛ django1.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ?

рдореБрдЭреЗ рдпрд╣рд╛рдВ рдПрдХ рдорд┐рд▓рд╛: http://groups.google.com/group/django-grappelli/browse_thread/thread/7b929047d316275f

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред

django1.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, grappelli_2_4 рд╢рд╛рдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

cd ../lib/python2.7/site-packages
git init django-grappelli
cd django-grappelli
git remote add --track grappelli_2_4 grappelli_2_4 https://github.com/sehmaschine/django-grappelli.git
git fetch grappelli_2_4
git checkout grappelli_2_4
python setup.py install

рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рд╢рд╛рдЦрд╛ рдХреА рдЬрд╛рдБрдЪ рдХреА рддреЛ рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдПрдБ рдереАрдВ, рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рд╡реНрдпрд╡рд╕рд╛рдп рдореЗрдВ рдЕрдиреБрдкрдпреЛрдЧреА рдмрдирд╛ рджрд┐рдпрд╛ :(

рдЗрд╕реЗ django 1.4.2 рдФрд░ рдЧреНрд░реЗрдкреЗрд▓реА 2.4.3 . рдХреЗ рд╕рд╛рде рдкрдХрдбрд╝реЗрдВ

рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 17 рдХреЗ рд╕рд╛рде рдЧреНрд░реЗрдкреЗрд▓реА 2.4.3 + Django 1.4.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рд╡рд╛рд▓реЗ рдкреГрд╖реНрда рдкрд░ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реЛрдирд╛:

TypeError: $(...).actions is not a function
$("tr input.action-select").actions();

рдкреЗрдЬрд┐рдиреЗрд╢рди рдмрд╛рд░ рдЯреВрдЯрд╛-рдлреВрдЯрд╛ рд╕реВрдЪреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЦреБрд▓ рд░рд╣рд╛ рд╣реИ (рд╕рдВрд▓рдЧреНрди рдЫрд╡рд┐ рджреЗрдЦреЗрдВ)ред

рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

Capture d e cran 2013-01-04 a 11 50 42

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ jQuery рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ (рдХрдИ рд╕рдВрд╕реНрдХрд░рдг рдЖрдпрд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рдмрдЬрд╛рдп "grp.jQuery" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ)ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ рдФрд░ "grp.jQuery" рдХреЛ "django.jQuery" рд╕реЗ рдмрджрд▓рдХрд░ рдлрд┐рдХреНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

<script type="text/javascript" charset="utf-8">
        (function($) {
            $(document).ready(function() {
                $("tr input.action-select").actions();
            });
        })(grp.jQuery);
    </script>

рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрди рдХреЛрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ:

<script type="text/javascript" charset="utf-8">
        (function($) {
            $(document).ready(function() {
                $("tr input.action-select").actions();
            });
        })(django.jQuery);
    </script>

grp.jQuery рдХреЛ рд╡рд╣рд╛рдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдХреЛрдИ рдЬреЗрдПрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ ... рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдФрд░ рдЯрд┐рдХрдЯ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдпрд╣ рдПрдХ рд╕реЗрдЯрдЕрдк рд╕рдорд╕реНрдпрд╛ рдереАред рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдлрд╛рдЗрд▓реЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓реЛрдб рд╣реЛ рд░рд╣реА рд╣реИрдВ?

@sehmaschine рдореИрдВрдиреЗ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдЕрдкрдбреЗрдЯ рдХреА (рдХрд┐рд╕реА рдХреЗ рдмрдЬрд╛рдп "django.jQuery" рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред
grp.jQuery рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 1.7.2 рд╣реИ рдЬрдмрдХрд┐ django.jQuery 1.4.2 рд╣реИред рдореИрдВрдиреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдФрд░ рдЧреНрд░реЗрдкреЗрд▓реА рдореЗрдВ рд╕реЗрдЯрдЕрдк рдХреЛ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрдЕрдк рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╛ рдХрд╣рд╛рдБред

рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдпрд╣ рдореЗрд░реА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдФрд░ рдЬрд╣рд╛рдВ "grp.jQuery" рдХреЛ "django.jQuery" рдореЗрдВ рдмрджрд▓рдирд╛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ: https://gist.github.com/4452470

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЪреЗрдХ-рдСрд▓ рдЪреЗрдХрдмреЙрдХреНрд╕ ( ) рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ grp.jQuery рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрджрд┐ grp.jQuery рдирд╣реАрдВ рд╣реИ, рддреЛ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреАред

рдореБрдЭреЗ рдпрд╣ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ (Django 1.5, Chrome 26)ред рдЕрдЧрд░ рдореИрдВ рдкреНрд░рд╢реНрди рдореЗрдВ рд▓рд╛рдЗрди рдкрд░ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реВрдВ ( $("tr input.action-select").actions(); ), рддреЛ grp.jQuery рд╣реИ, рдЗрд╕рдореЗрдВ actions() рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред

рдПрдХреЗ defrex рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛

рдореБрдЭреЗ рд╡рд╣реА рдЪреАрдЬрд╝ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИ, рдЬреЛ рдЖрдк @defrex рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рддрднреА рдЬрдм action.min.js рд▓реЛрдб рд╣реЛред рдЕрдЧрд░ DEBUG=True рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЗ @vongesell рдиреЗ рднреА рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛?

рдУрд╣ рд╣рд╛рдБ, Django рдФрд░ рдХреНрд░реЛрдо рдХрд╛ рдПрдХ рд╣реА рд╕рдВрд╕реНрдХрд░рдг, рдФрд░ рдореИрдВ рдЧреНрд░реЗрдкреЗрд▓реА 2.4.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЙрдмрдВрдЯреВ рдкрд░ рд╡рд╣реА рдореБрджреНрджрд╛, Django == 1.5, django-grappelli == 2.4.4, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 22.0ред рдлрд╛рдпрд░рдмрдЧ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ:

рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: $(...)ред рдХреНрд░рд┐рдпрд╛рдПрдБ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ
[рдЗрд╕ рддреНрд░реБрдЯрд┐ рдкрд░ рд╡рд┐рд░рд╛рдо]

$("tr input.action-select").actions();

/api/a...kstate/ (рдкрдВрдХреНрддрд┐ 55)

рдпрд╣рд╛рдВ рднреА рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, actions.js /static/admin/js/ рджреНрд╡рд╛рд░рд╛ collectstatic рдореЗрдВ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рдмрд╕ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХрд░рдирд╛ рдерд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред prepopulate.js рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред

@bjudson рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХрд▓реЗрдХреНрдЯрд┐рд╡ рдиреЗ рд╕рдм рдХреБрдЫ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдФрд░ рдЕрдм рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

Django 1.6 рдФрд░ рдЧреНрд░реЗрдкреЗрд▓реА 2.5.0 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ред рдкреИрдЪрд┐рдВрдЧ ../grappelli/templates/admin/change_list.html рдЬреИрд╕реЗ рд╡рд┐рдиреАрд▓ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдореЗрд░реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

Django == 1.8.2
django-grappelli==2.7.1

рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИ, рдХрд▓реЗрдХреНрдЯрд╕реНрдЯреИрдЯрд┐рдХ рдХреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЧреНрд░реЗрдкреЗрд▓рд┐рд╕ рдПрдбрдорд┐рди / рд╕реНрдЯреИрдЯрд┐рдХ рдлреЛрд▓реНрдбрд░ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред

Django == 1.8.3
django-grappelli==2.7.3

рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдпрд╣рд╛рдБ рдореЗрд░реЗ рд▓рд┐рдП

~django.contrib.admin.options.ModelAdmin# рдореАрдбрд┐рдпрд╛:635
рдЕрдЧрд░ self.actions рдХреЛрдИ рдирд╣реАрдВ рд╣реИ:
js.append('actions%s.js'% extra)

рдпрджрд┐ рдЖрдк ModelAdmin рдЙрдкрд╡рд░реНрдЧ рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╡рд┐рдзрд┐ (рд╕рдВрдкрддреНрддрд┐) рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЗрд╕ рд╕реБрдкрд░ рдХреЛ рдХреЙрд▓ рдХрд┐рдП рдмрд┐рдирд╛ рдореАрдбрд┐рдпрд╛ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛, рддреЛ рдЖрдкрдХреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдФрд░ рдЖрдкрдХреЛ Form.media рдХрд╛ рдПрдХреНрд╕рдЯреЗрдВрдб рдлреАрдЪрд░ рднреА рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдореАрдбрд┐рдпрд╛ рдореЗрдВ рдЙрдкрд╡рд░реНрдЧ рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рднреА рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред

рддреЛ, рдЙрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдЪреЗрдХ рдкреНрд╡рд╛рдЗрдВрдЯ рдбрд╛рд▓реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ nginx config.
рдкрд╣рд▓реЗ:
location /static/admin/ { alias /web/merv/env/lib/python3.4/site-packages/django/contrib/admin/static/admin/; }
location /static/ { alias /web/merv/files/static/; }
рдмрд╛рдж рдореЗрдВ:
location /static/ { alias /web/merv/files/static/; }

рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред
рдЕрдЬрдЧрд░ 2.7, рдбреАрдЬреЗрдВрдЧреЛ 1.9.6, рдЧреНрд░реЗрдкреЗрд▓реА 2.8.1

рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреА nginx рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ/рд╕реНрдерд┐рд░/рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ/рдмреНрд▓реЙрдХ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ @gameot рдиреЗ рдХрд╣рд╛); рдЗрд╕ рддрд░рд╣:

#location /static/admin/ {
#   alias /home/mohsen/virtualenvs/django-1.9/lib/python3.4/site-packages/django/contrib/admin/static/admin/;
#}

рдореИрдВ рдЗрд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рд╕рдХрддрд╛ рдерд╛! рдЧреНрд░реЗрдкреЗрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдмреЗрдХрд╛рд░ рд▓рдЧрддрд╛ рд╣реИред

рдЙрд╕рдХреЗ рдмрд╛рдж рдЧреНрд░реИрдкреЗрд▓реА рдбреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд▓реЗрдХреНрдЯрд┐рдХ рдХрд░реЗрдВ: рдкрд╛рдпрдерди рдореИрдиреЗрдЬ.рдкреА рдХрд▓реЗрдХреНрдЯрд╕реНрдЯреИрдЯрд┐рдХ
рдлрд┐рд░ nginx рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕