8

API に、何万ものレコードを持つテーブルへの外部キーを持つモデルがあります。ブラウズ可能な UI でそのモデルの詳細ページを参照すると、PUT コマンドの HTML フォームの何万ものエントリを外部キー ドロップダウンに入力しようとするため、ページの読み込みに時間がかかります。

とにかくこれを回避する方法はありますか?私の最善の解決策は、ブラウズ可能な UI にこのフィールドを表示しないようにして、読み込みが遅くならないようにすることだと思います。ユーザーは、実際の PUT API リクエストによって直接フィールドを更新できます。

ありがとう。

4

5 に答える 5

4

オートコンプリート ウィジェットの使用を検討するか、ダム テキスト フィールド ウィジェットの使用にドロップダウンしてください。

オートコンプリートのドキュメント: http://www.django-rest-framework.org/topics/browsable-api/#autocomplete

于 2013-09-03T10:08:04.783 に答える
3

簡単な方法で TextInput の使用を強制できます。

from django.forms import widgets
...
class YourSerializer(serializers.ModelSerializer):
    param = serializers.PrimaryKeyRelatedField(
        widget=widgets.TextInput
    )

または、適切な autocomplete_light 構成の後:

import autocomplete_light
...
class YourSerializer(serializers.ModelSerializer):
    paramOne = serializers.PrimaryKeyRelatedField(
        widget=autocomplete_light.ChoiceWidget('RelatedModelAutocomplete')
    )
    paramMany = serializers.PrimaryKeyRelatedField(
        widget=autocomplete_light.MultipleChoiceWidget('RelatedModelAutocomplete')
    )

autocomplete_light によって返される結果を除外するには、ドキュメントのこの部分を参照してください。

于 2013-10-04T23:18:21.083 に答える