私はDjangoのモデルに変換した大きなデータテーブル(〜30 Mb)を持っています。今、私はそのデータにREST APIを通してアクセスしたいと思っています。Django rest framework:モデルの各フィールドに自動的にURLを作成します。
私は正常にDjango RESTフレームワークをインストールしましたが、モデルの各フィールドのURLを自動的に作成する方法を探しています。私のモデルには約100のフィールドがあり、各フィールドには約100,000のエントリがあります。
私のモデルは、サンプル、
models.py
class Sample(models.Model):
index = models.IntegerField(primary_key=True)
year = models.IntegerField(blank=True, null=True)
name = models.TextField(blank=True, null=True)
...97 more fields...
命名されている場合、私はこのようなDjangoのRESTフレームワークを使用してモデル全体にアクセスすることができます。
urls.py
class SampleSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Sample
fields = (**100 fields**)
class SampleViewSet(viewsets.ModelViewSet):
queryset = Sample.objects.all()
serializer_class = SampleSerializer
router = routers.DefaultRouter()
router.register(r'sample', SampleViewSet)
しかし、もちろん、私のブラウザでは、すべてをロードすることはできませんそのデータを妥当な時間内に収集します。手動で別のクラスとURLを各フィールドに作成することもできますが、より良い方法が必要です... my_site.com/sample/year(たとえば)に行き、すべての年を表示できるようにしたいJSON形式、またはmy_site.com/sample/nameで、すべての名前などを表示してください。 どうすればいいですか、お手数をお察しください。
はご回答いただきありがとうございます。あなたのコードに従ってURLマッピングがどのように機能するのかちょっと混乱します。このコードを変更する必要がありますか? router = routers.DefaultRouter() router.register(r'sample '、SampleViewSet)' –
ルータのレジストリを変更する必要はありません。 URLは、list_routeデコレータで装飾されたメソッド名から派生しています。 –