Почему IntegrityError, ограничение UNIQUE не сработало при обновлении модели django?
Я использую Django 4.0.5 и пытаюсь сохранить модель видео youtube, а затем загрузить его миниатюру. Когда я обновляю модель с миниатюрой, она выдает IntegrityError, но я не могу понять почему.
models.py
class YoutubeVideo(models.Model):
title = models.CharField(max_length=255)
description = models.TextField()
json_info = models.TextField(default='{}')
slug = models.SlugField()
thumbnail_url = models.CharField(max_length=255)
video_url = models.CharField(max_length=255)
thumbnail = models.ImageField(upload_to=get_path_yt, null=True, blank=True)
video = models.FileField(upload_to=get_path_yt, null=True, blank=True)
added_at = models.DateTimeField(auto_now=True)
added_from = models.ForeignKey(User, on_delete=models.CASCADE)
def download_thumbnail(self) -> None:
request = requests.get(self.thumbnail_url, stream=True)
if request.status_code != 200:
raise ValueError('Invalid thumbnail url')
img_temp = NamedTemporaryFile()
img_temp.write(request.content)
img_temp.flush()
file_name = self.thumbnail_url.split('/')[-1]
self.thumbnail.save(file_name, File(img_temp.file))
img_temp.close()
@staticmethod
def create_from_url(url: str, request: Any) -> Any:
youtube_video = YoutubeVideo(**get_video_info(url))
youtube_video.added_from = request.user
youtube_video.save()
youtube_video.download_thumbnail()
return youtube_video
Ошибка UNIQUE constraint failed: youtube_archive_youtubevideo.id
Если я сохраняю модель только один раз после загрузки миниатюры, она работает, но мне нужно сделать это в два разных раза.