小编Ala*_*lan的帖子

时间序列数据的 Django 模型

我和我的朋友构建了一个买卖股票的应用程序,我们希望在一天结束时保留我们拥有的每只股票的历史价格。3 个最重要的字段是股票代码价格日期

例如:

01/01/2018 - Bought Stock A, record price of Stock A at end of day(EOD)
01/02/2018 - Did nothing, record price of Stock A at EOD
01/03/2018 - Bought Stock B, record price of Stock A and Stock B at EOD
01/04/2018 - Sell Stock A, record price of Stock B at EOD
Run Code Online (Sandbox Code Playgroud)

我们正在使用 Django 来构建模型。每天我们都会记录我们拥有的每只股票的价格。本组数据仅供外部使用,不会对外公开。

我最初的研究告诉我,将历史价格的单个表存储为单行是不理想的。我不确定在使用 Django 时最好的方法是什么。存储所有这些数据的 Django 模型是什么样的,我们应该使用 MYSQL 吗?

database django time-series django-models

9
推荐指数
1
解决办法
2306
查看次数

Django Rest Framework Serializer Relations:如何获取仅最新曲目的列表?

我在这里关注这个文档。我试图让我能够查询 Album 对象并让它只返回最新的曲目而不是返回所有曲目。以下是文档模型和序列化程序的修改版本。

楷模

class AlbumOwner(models.Model):
    username = models.CharField(max_length=100)

class Album(models.Model):
    album_name = models.CharField(max_length=100)
    owner = models.ForeignKey(AlbumOwner, related_name='owner', on_delete=models.CASCADE)

class Track(models.Model):
    album = models.ForeignKey(Album, related_name='tracks', on_delete=models.CASCADE)
    title = models.CharField(max_length=100)
    created_at = models.DateTimeField(auto_now_add=True)   

    class Meta:
        get_latest_by = 'created_at'
Run Code Online (Sandbox Code Playgroud)

序列化器

class TrackSerializer(serializers.ModelSerializer):
    class Meta:
        model = Track
        fields = ('title', 'created_at')

class AlbumSerializer(serializers.ModelSerializer):
    tracks = TrackSerializer(many=True, read_only=True)

    class Meta:
        model = Album
        fields = ('album_name', 'tracks')
Run Code Online (Sandbox Code Playgroud)

我目前使用的查询如下,“o”代表所有者:

albums = Album.objects.filter(owner=o)
serializer = AlbumSerializer(albums)
serializer.data
Run Code Online (Sandbox Code Playgroud)

Serializer.data 将返回类似于以下内容的响应:

[{
    'album_name': 'The Grey …
Run Code Online (Sandbox Code Playgroud)

python django serialization django-rest-framework

1
推荐指数
1
解决办法
2275
查看次数