我正在尝试加载json数据文件,并使用给定的json数据文件创建播放器类。我在Django网站上查找了文档和一些关于堆栈溢出的帖子,但我不知道该怎么做。当我尝试在models.py上创建create()的类方法时,我一直收到没有表存在的错误。有人能帮我弄清楚吗??提前谢谢你
对于models.py,我有player类
class Player(models.Model):
pos = models.CharField(max_length=2, default="")
name = models.CharField(max_length=30, default="")
age = models.PositiveIntegerField()
posRank = models.PositiveIntegerField()
throwAtt = models.PositiveIntegerField()
throwYd = models.PositiveIntegerField()
throwTD = models.PositiveIntegerField()
interception = models.PositiveIntegerField()
rushAtt = models.PositiveIntegerField()
rushYd = models.PositiveIntegerField()
rushTD = models.PositiveIntegerField()
rushAvgYd = models.FloatField()
target = models.PositiveIntegerField()
rec = models.PositiveIntegerField()
recYd = models.PositiveIntegerField()
recAvgYd = models.FloatField()
recTD = models.PositiveIntegerField()
totalTD = models.PositiveIntegerField()
fumble = models.PositiveIntegerField()
fpts = models.FloatField(null=True)
ppr = models.FloatField()
totGames = models.PositiveIntegerField()
对于serializers.py,我有一个播放器序列化程序,如下所示
class PlayerSerializer(serializers.ModelSerializer):
class Meta:
model = Player
fields = ('name', 'pos', 'age', 'posRank', 'throwAtt', 'throwYds', 'throwTD',
'interception', 'rushAtt', 'rushYd', 'rushTD', 'rushAvgYd', 'target',
'rec', 'recYd', 'recAvgYd', 'recTD' 'totalTD', 'fumble', 'fpts', 'ppr', 'totGames')
and inside views.py i have this class
class PlayerView(generics.CreateAPIView):
players = Player.objects.all()
serializer = PlayerSerializer(players, many=True)
def get(self, request):
output = json.load('api/NewNFLdata.json')
for player in output:
newPlayer = Player(pos=player["FantPos"],
name=player["Player"],
age=player["Age"],
posRank=player["PosRank"],
throwAtt=player["Att"],
throwYd=player["Yds"],
throwTD=player["TD"],
interception=player["Int"],
rushAtt=player["Att.1"],
rushYd=player["Yds.1"],
rushTD=player["TD.1"],
rushAvgYd=player["Y/A"],
target=player["Tgt"],
rec=player["Rec"],
recYd=player["Yds.2"],
recAvgYd=player["Y/R"],
recTD=player["TD.2"],
totalTD=player["TD.3"],
fumble=player["Fmb"],
fpts=player["FantPt"],
ppr=player["PPR"],
totGames=player["G"]
)
newPlayer.save()
return Response(serializer.data)
我试图通过查找堆栈溢出来自己完成这项工作,但找不到将json数据加载到模型中的方法
发布于 2021-01-19 10:30:02
看一看fixtures:https://docs.djangoproject.com/en/3.1/howto/initial-data/
如果可以将JSON文件调整为适当的格式,就可以从Django的fixtures加载过程中获益,其中包括不必编写的字段验证。祝好运!
https://stackoverflow.com/questions/65783909
复制相似问题