我有大型数据表(〜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装饰器装饰的方法名称。 –