django-grappelli2.3.4をDjango1.4.0alphaと組み合わせてインストールしました。 変更リストページのフィルタードロップダウンボックスを除いて、すべて問題ありません。 ChromeとFirefoxはJavascriptエラーを報告します:
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
に含まれるブロックにロードされているためだと思います。これは、関連するJavascriptコードの_後_にあります。
これがDjangoコードがまだアルファ版である結果であるかどうかはわかりませんが、報告すると思いました。
templates/admin/includes_grappelli/header.html
のgrp_collapsible
によって同時に発生する別のエラー:
Uncaught TypeError: Object #<Object> has no method 'grp_collapsible'
ただし、これを修正する方法がわかりません。
django 1.3で試しましたか?
いいえ、ごめんなさい。 ちょうど1.4.0a。 私は少し不機嫌ですが、それはほとんどだと思います
grappelliのもの:テンプレートchange_listとの順序
Javascriptコードのロード/実行。
私は報告書を提出するのに少し急いでいて、厳密ではなかったかもしれません
さまざまなdjangoバージョンでのテストで十分です-お詫びします!
正直なところ...私はそれがgrappelli-errorだとは思わない。 そうしないと、何百人ものユーザーがフィルタードロップダウンを使用できなくなり、そうではないと思います。 1.4.0aのせいであると確信しています...そしてgrappelliは常に最新の公式リリースに対して開発されています。
私はそれが事実であることを確認できます-フィルタードロップダウンはかなり長い間django-trunkで機能していませんでした。 swashbucklerが提案したように、コードを移動するためにGrappelliテンプレートにはまだ触れていません。
Grappelliがdjango-trunkで最新の状態に保たれている場合、それはより綿密に検討されるべき問題です。 Django 1.4がcontrib.adminメディアをSTATIC_URLに移動し、ADMIN_MEDIA_PREFIXを廃止することに関係しているのではないかと思います。
私の最後のコメントを読むと、grappelliがdjangosトランクで開発されていないことがわかります。
申し訳ありませんが、私はそれをあまりにも速く読みました:)
djangosトランクバージョンに関連しているので、このチケットを閉じます。 ドキュメントが更新され、grappelliは常に最新の安定したdjangoリリースに対して開発されているというメモが追加されました。
この問題は、数日前にリリースされた1.4でも解決しないようです。 これが修正される可能性はありますか?
もちろん、grappelliがdjango1.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
前回ブランチをチェックしたとき、マークアップに大きな問題があり、そのほとんどがビジネスで使用できなくなりました:(
django1.4.2とgrappelli2.4.3でキャッチ
Firefox17でGrappelli2.4.3+ Django 1.4.3を使用し、フィルターのあるページにこのエラーメッセージが表示される:
TypeError: $(...).actions is not a function
$("tr input.action-select").actions();
ページネーションバーが壊れた-フィルターが開かずにリストの一番上に移動しました(添付の画像を参照)。
キャッシュをクリアしても効果はありません。
私の場合、使用されている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が存在する必要があります。そうでない場合、jsは機能しません...別のチケットですでにその問題が発生しており、セットアップの問題であることが判明しました。 javascriptファイルが正しくロードされていることを確認しますか?
@sehmaschineコメントを更新しました(noneの代わりに "django.jQuery"名前空間を使用)。
grp.jQueryは実際には1.7.2ですが、django.jQueryは1.4.2です。 adminとgrappelliではセットアップをあまりカスタマイズしませんでした。 どういうわけかいくつかの構成設定を見逃したかもしれませんが、何をどこで理解することができません。
詳細については、失敗したソースファイルを次に示します。 そして、「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()
メソッドがありません。
ack。 defrexと同じ問題
私はあなたと同じもの、 @ defrexを見ていますが、actions.min.jsがロードされている場合のみです。 DEBUG = Trueの場合、すべてが正常に見えます。 あなたの@vongesellもそれに気づきましたか? あなたのどちらかがそれを修正することができましたか?
はい、同じバージョンのDjangoとChromeで、grappelli2.4.4を使用しています。
同じ問題、Django == 1.5、django-grappelli == 2.4.4、Ubuntu上のFirefox22.0。 Firebugコンソールの出力:
TypeError:$(...)。actionsは関数ではありません
[このエラーの中断]
$( "tr input.action-select")。actions();
/ api / a ... kstate /(55行目)
こちらもご覧ください。 私の場合、 actions.js
collectstatic
/static/admin/js/
にコピーされませんでした。 私がしなければならなかったのはそれを手動でコピーすることだけで、すべてが機能します。 prepopulate.js
でも同じ問題が発生しました。
@bjudsonヒントをありがとう。 私にとって、collectstaticはすべてをコピーしなかったことがわかりました。 もう一度実行すると、すべてが機能します。
Django1.6とGrappelli2.5.0でも同じ問題が発生します。 Vinyllによって推奨されているように../grappelli/templates/admin/change_list.htmlにパッチを適用すると、問題が修正されます。
Django == 1.8.2
django-grappelli == 2.7.1
それでも問題は解決しません。collectstaticが何らかの理由でgrappellisadmin/staticフォルダーを見つけられません。
Django == 1.8.3
django-grappelli == 2.7.3
私にとってまだここに問題があります
〜django.contrib.admin.options.ModelAdmin# media:635
self.actionsがNoneでない場合:
js.append('actions%s.js'%extra)
このスーパープロパティを呼び出さずにメディアプロパティを再定義するなど、このメソッド(プロパティ)が呼び出されないようにするModelAdminサブクラスで何かを行うと、アクションが読み込まれません。 また、Form.mediaの拡張機能も利用できません。 したがって、サブクラスのクラスMediaにアクションを配置しようとしても、それは見つかりません。
したがって、そのメソッドにチェックポイントを設定し、呼び出されていることを確認します。
同じ問題が発生し、nginxconfigを編集して解決しました。
前:
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/;
}
私にとって問題はまだ存在しています。
python 2.7、django 1.9.6、grappelli 2.8.1
問題を解決するために、Webサイトのnginx構成ファイルの/ static / admin /ブロックにコメントを付ける必要がありました( @gameotが言ったように)。 このような:
#location /static/admin/ {
# alias /home/mohsen/virtualenvs/django-1.9/lib/python3.4/site-packages/django/contrib/admin/static/admin/;
#}
もちろん削除できます! grappelliを使用する場合は役に立たないようです。
その後、grappelli docsが言うように、collectstaticを実行します:python manage.py collectstatic
次に、nginxを再起動します。
最も参考になるコメント
私にとって問題はまだ存在しています。
python 2.7、django 1.9.6、grappelli 2.8.1