我有大型數據表(〜30 Mb),我將它轉換爲Django中的模型。現在我想通過REST API訪問這些數據。Django rest框架:爲模型的每個字段自動創建一個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裝飾器裝飾的方法名稱。 –