python - 迁移前使用模型信息
问题描述
我正在尝试在 DRF 中编写一个序列化程序,它以前使用另一个作为选择列表。但是,当我尝试迁移(最初)时,我收到一个错误,因为序列化程序试图在创建表之前查询表:
from api.models.stock import Stock
from rest_framework import serializers
class ChartSerializer(serializers.Serializer):
symbol = serializers.ChoiceField(
choices=Stock.objects.values_list('symbol', flat=True))
option = serializers.ChoiceField(
choices=['sparkline', '1d', '1w', '1m', '6m', '1y', '2y'])
错误是:
django.db.utils.ProgrammingError:关系“api_stock”不存在第 1 行:从“api_stock”中选择“api_stock”。“symbol”
我怎样才能改变这个?我是否需要检查Stock
之前是否已创建?
解决方案
我通过使用这样的 SlugRelatedField 解决了我的问题:
symbol = serializers.SlugRelatedField(
queryset=Stock.objects.all(), slug_field='symbol')
推荐阅读
- shell - 如何在crontab中传递日期参数
- scala - 如何从日期字符串中提取年份?
- ruby-on-rails - Rails 5.2 用于数组不包含的控制器
- python-3.x - matplotlib 版本 >=3 不包括 find()
- python - 如果我在编译时不知道属性名称是什么,如何设置 Python 类的属性。?
- apache-spark - 配置 spark-submit 到远程 AWS EMR 集群
- ios - 如何在扩展中合并/访问 pod 文件 (MMWormhole)?
- sql - 从列的每一行中提取部分字符串
- c# - 如何将 C# 字典输出为 C# 代码?
- java - 当我们使用自定义哈希函数时,Java HashTable 是否遵守负载因子(我们指定)?