我正在使用Django,我遇到了使用Django模型的Python腳本的問題 我正在使用的腳本從api獲取數據並將其加載到我的數據庫。Django - get_or_create()with auto_now = True
我的模型:
class Movie(models.Model):
title = models.CharField(max_length=511)
tmdb_id = models.IntegerField(null=True, blank=True)
release = models.DateField(null=True, blank=True)
poster = models.TextField(max_length=500, null=True)
runtime = models.IntegerField(null=True, blank=True)
description = models.TextField(null=True, blank=True)
edit = models.DateTimeField(auto_now=True, null=True, blank=True)
backdrop = models.TextField(max_length=500, null=True, blank=True)
popularity = models.TextField(null=True, blank=True)
腳本:
movies = tmdb.Movies().upcoming()
results = movies['results']
ids = []
for movie in results:
data, created = Movie.objects.get_or_create(title=movie['title'],
tmdb_id=movie['id'],
release=movie['release_date'],
description=movie['overview'],
backdrop=movie['backdrop_path'],
poster=movie['poster_path'],
popularity=movie['popularity'])
我遇到的問題是,每當我運行該腳本,該條目是重複的,因爲編輯字段是變化的,但我把編輯字段的目的是爲了知道電影的確切編輯時間,即:某些其他字段已更改。
我怎樣才能避免重複,但也保持編輯領域萬一發生了一些真正的變化?
您是否覆蓋了'Movie'模型中的save()'方法? –
@CarlosMermingas不,我沒有,我也不太清楚該怎麼做,我對django – mari
相當陌生。我想知道是否有另一種互動。我創建了一個小型項目來複制這個錯誤,我無法重現它。你可以請仔細檢查一下,這是否正是你正在運行的代碼?電影模型中不存在'get_or_create'中的'背景'和'流行度'字段。 –