【发布时间】:2020-04-09 19:26:25
【问题描述】:
同事们晚上好!我有以下代码:
序列化器.py
class CoinCostsSerializer(serializers.ModelSerializer):
class Meta:
fields = ('price', 'timestamp',)
model = CoinCosts
class CoinSerializer(serializers.ModelSerializer):
class Meta:
fields = ('symbol', 'crr', 'costs')
model = Coins
costs = CoinCostsSerializer(source='coincosts_set.all', many=True)
views.py
class CoinCostFilterSet(filters.FilterSet):
class Meta:
model = Coins
fields = {
'symbol': ['exact'],
}
class CoinCostViewSet(viewsets.ModelViewSet):
queryset = Coins.objects.all()
serializer_class = CoinSerializer
filter_backends = (filters.DjangoFilterBackend,)
filterset_class = CoinCostFilterSet
models.py
class Coins(models.Model):
name = models.CharField(max_length=150)
symbol = models.CharField(max_length=45)
crr = models.CharField(max_length=3)
class CoinCosts(models.Model):
coin_id = models.ForeignKey(Coins, on_delete=models.CASCADE)
crr = models.CharField(max_length=3)
volume = models.DecimalField(max_digits=19, decimal_places=4)
reserve = models.DecimalField(max_digits=19, decimal_places=4)
price = models.DecimalField(max_digits=19, decimal_places=4)
timestamp = models.DateTimeField(auto_now_add=True, blank=True)
然后输入地址
/CoinCost/?symbol=ZERO
例如,我在这枚硬币上从 Django 过滤。
所以我需要这个网址:
/CoinCost/?symbol=ZERO×tamp_start=2019-12-14T00:00:00×tamp_end=2019-12-17T00:00:00
- 不仅可以按零币过滤,还可以按时间戳过滤。你能帮我吗?对于这个任务,我的代码应该是什么样的?如何也按嵌入式序列化程序进行过滤?
我看到了这个Filtered Nested Relationships Django Rest Framework 但是>没用,我在序列化程序中有 2 个嵌套字段 - 时间戳和成本
感谢您的帮助!周末愉快!
【问题讨论】:
-
伊戈尔,也展示你的模型
-
添加了models.py
-
Igor,通常,开发人员对表使用单数名称,例如 Coin 和 CoinCost
-
是的,谢谢,我明天编辑)
标签: python django django-rest-framework