2017-12-31 76 views
0

テーブルAの各行に対して、テーブルBから1つ以上の行を追加できます。Django - 多対多ピッカーウィジェットはどこですか?

Djangoの管理者には、ユーザー権限のピッカーがあります。スクリーンショットを添付します。

Django picker for user permissions, a many to many picker

各ユーザーはアクセス権の数に制限はありません。アクセス権は左から始まります。追加すると右に移動します。それらを前後に動かすことができます。

私は自分のモデルの2つを望んでいます。このウィジェットを入手するにはどうすればいいですか?

私は最初に多対1のウィジェットが必要だと思っていましたが、さらに考えてみると、これは多くのものが多いと思います。ユーザーが権限を取得した後も、その権限は他のユーザーが引き続き使用できます。ユーザーは複数の権限を持つことができます。特定の許可については、複数のユーザーに同じ許可を与えることができます。私の2つのテーブルは同じように動作します。

ユーザーがアクセスできる追加および更新レコードページでウィジェットが必要です。私は管理ページにそれを必要としません。 (私は、ユーザーの管理ページで必要なものの完璧な例を見つけることがラッキーだった。)あなたのadmin.py

class your_model_admin(admin.ModelAdmin): 
    ... 
    filter_horizontal = ('field_name',) 

答えて

0

これはあまりにもfield_nameフィールドの

permissionフィールドと同じウィジェットを行います
0

私はチケットをcode.djangoproject.comに入れて尋ねました。

答え:

モジュールがそこにあり、それらを使用できます。あなたはdjango.forms.widgetsから

からウィジェットを使用することができます

django.contrib.admin.widgetsから

からfilter_horizo​​ntal/filter_verticalウィジェットがアクセス可能であるとselectMultiple

をインポートFilteredSelectMultipleをインポート

https://code.djangoproject.com/ticket/28993#comment:1

ただし、フォームはJavaScriptに依存しており、下位互換性は保証されていないため、フォームで使用するためのモジュールは提供されていません。

https://code.djangoproject.com/ticket/28993#comment:2

???