Как использовать initial в форме с несколькими объектами без получения ошибки MultipleObjectsReturned

Почему форма выдает исключение MultipleObjectsReturned, когда я пытаюсь позволить пользователям редактировать обложку своего профиля, у меня есть модель для учетной записи и я также создал отдельную модель для хранения загрузки изображений обложки профиля пользователей, учитывая, что пользователи могут загружать несколько изображений обложки профиля. но почему-то я получаю эту ошибку (get() returned more than one AccountCover -- it returned 2!), когда загружается более одного изображения обложки.

 cover = get_object_or_404(AccountCover, account=account.id).first()
    if request.user:
        forms = CoverImageForm(request.POST, request.FILES,instance=cover,
                        initial = {
                            'cover_image':cover.cover_image.url,
                        })
        if forms.is_valid():
            data = forms.save(commit=False)
            data.account = cover.account
            data.save()
            
    
    else:
        forms = CoverImageForm(
            initial = {
                'cover_image':cover.cover_image,
            }
        )

Вот моя модель для изображения обложки .

class AccountCover(models.Model):
    account = models.ForeignKey(Account,on_delete=models.CASCADE)
    cover_image = models.ImageField(upload_to=get_cover_image_path,blank=True, null=True)

Форма для изображения обложки

class CoverImageForm(forms.ModelForm):
    class Meta:
        model = AccountCover
        fields  = ['cover_image']

Я думаю, что get_object_or_404 должен возвращать только один объект. Попробуйте вместо этого использовать:

from django.http import Http404


cover = AccountCover.objects.filter(account=account.id).first()
if not cover:
    raise Http404()

Вернуться на верх