{
"캡틴마블": ["20018348", "81533"],
"이스케이프룸": ["20018925", "81654"],
"돈": ["20018920", "81651"],
"라스트미션": ["20018934", "81658"],
"우상": ["20018907", "81650"],
}
我已经获取了电影数据,并如上所述保存了数据(作为字典)。 我想将它们保存到我的Django项目中,但是下面的代码对我不起作用。
if __name__=='__main__':
movie_data_dict = data #like above format Json file
for t, m in movie_data_dict.items():
MovieData(title=t, movie_cd=m[0], movie_idx=m[1]).save()
class MovieData(models.Model):
title = models.CharField(max_length=20)
movie_cd = models.IntegerField
movie_idx = models.IntegerField
抛出的错误是:
sqlite3.OperationalError: table parsed_data_movie_data has no column movie_idx
...
...
django.db.utils.OperationalError: table parsed_data_movie_data has no column movie_idx
移民后的另一个错误
Traceback (most recent call last):
File "NameParser.py", line 48, in <module>
MovieData(title=t, movie_cd=m[0], movie_idx=m[1] ).save()
File "C:\Python\Python37\lib\site-packages\django\db\models\base.py", line 485, in __init__
raise TypeError("'%s' is an invalid keyword argument for this function" % kwarg)
TypeError: 'movie_cd' is an invalid keyword argument for this function
答案 0 :(得分:0)
我怀疑您已经拥有初始化的数据库之后,将属性movie_idx
添加到了MovieData
中。这样做时,需要运行manage.py -makemigrations
,然后运行manage.py -migrate
(在服务器未运行时),以将新属性添加到SQL表中。
答案 1 :(得分:0)
您的字段设置不正确。 Django当前期望列表中的值是<?php get_header(); ?>
类型。您需要使用IntegerField
或将期望字段更改为movie_cd=int(m[0]), movie_idx=int(m[1])
。