17

仮に:私はCarというモデルを持っています。これは1人のユーザーに関連しています。私の懸念はデフォルトのDjango管理者の範囲内です。ドロップダウンを使用してユーザーを車に割り当てます(これはデフォルトのDjangoの動作なので、言われています)。

ドロップダウンで数千人以上のユーザーを選択するとどうなりますか。管理者はこれに対処しますか?もしそうなら、どのように対処しますか?

4

3 に答える 3

19

デフォルトの管理UIには、ドロップダウンリストが表示されます。このオプションを使用しraw_id_fieldsて、検索ボタンを介してポップアップウィンドウを表示します。このウィンドウでは、リンクされたオブジェクトを検索して選択できます。ドキュメントを参照してください:https ://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.raw_id_fields

デフォルトでは、Djangoの管理者はForeignKeyであるフィールドに選択ボックスインターフェース()を使用します。ドロップダウンに表示する関連するすべてのインスタンスを選択する必要があるというオーバーヘッドを発生させたくない場合があります。

于 2013-02-16T17:20:57.083 に答える
5

django-grappelli管理インターフェースを強化するアプリであるを調べることができます。ドキュメントForeignKeyでは、を使用したまたはManyToMany関係のオートコンプリートについて説明していraw_id_fieldsます。

于 2013-02-16T17:32:07.057 に答える
5

django-select2プラグインhttps://github.com/applegrew/django-select2を使用できます。

あなたは次のようなことをすることができます:

from django_select2 import AutoModelSelect2Field

class CategoryChoices(AutoModelSelect2Field):
    queryset = models.Category.objects
    search_fields = ['name__icontains', 'code__icontains']

class NewsAdminForm(forms.ModelForm):
    category = CategoryChoices()

    class Meta:
        model = models.News
        exclude = ()

# register in admin
class NewsAdmin(admin.ModelAdmin):
    form = NewsAdminForm
admin.site.register(News, NewsAdmin)
于 2015-09-29T10:47:03.490 に答える