Невозможно загрузить несколько изображений с помощью админки django

У меня есть две модели: одна - модель поста, которая может иметь несколько связанных изображений. Модель изображений имеет внешний ключ к посту. То есть, изображения имеют внешний ключ для одного поста. При добавлении нового поста я хочу загрузить несколько изображений одновременно. Вот код:

model.py


class Post(models.Model):
    title = models.CharField(max_length=255)
    thumbnail = models.ImageField(upload_to='thumbnails')
    summary = RichTextField()
    body = RichTextUploadingField()
    created_at = models.DateField(auto_now_add=True)

    class Meta:
        ordering = ['-created_at',]

    def __str__(self):
        return self.title

class Imagens(models.Model):
    img = models.ImageField(
        upload_to = "media/",
    )
    post = models.ForeignKey(
        "Post", on_delete=models.CASCADE, default=1)

admin.py

class ImageAdminForm(forms.ModelForm):
    class Meta:
        model = Imagens
        fields = ['img',]
    def __init__(self, *args, **kwargs):
        super(ImageAdminForm, self).__init__(*args, **kwargs)
        self.fields['img'] = forms.ImageField(widget=forms.ClearableFileInput(attrs={'multiple': True}))

class ImageInline(admin.TabularInline):
    model = Imagens
    extra = 1
    form = ImageAdminForm
  
class PostAdmin(admin.ModelAdmin):
   search_fields = ['title']
   inlines = [ImageInline,]
   def save_model(self, request, obj, form, change):
     obj.save()
     files = request.FILES.getlist('img') #he gets nothing
     print(files)
     for f in files:
        x = Imagens.objects.create(post=obj,img=f)
        x.save()

admin.site.register(Post, PostAdmin)

Проблема в том, что если я сохраняю объект post, он сохраняет только одно изображение, а если я пытаюсь получить список изображений, он выдает пустой список. Извините, я новичок в Django и даже в python. Любая помощь приветствуется.

Ну, это просто обходной путь. Я сделал так, что основная модель поделилась формой со встроенной моделью. Таким образом, на странице изменения появляются файлы, и я не обязан размещать изображения, но там полно полей.

class ImageAdminForm(forms.ModelForm):

    imgens = forms.ImageField(widget=forms.ClearableFileInput(attrs={'multiple': True}))

    def __init__(self, *args, **kwargs): 
        super(ImageAdminForm, self).__init__(*args, **kwargs)
        self.fields['imgens'].required = False
        self.fields['img'] = forms.ImageField()
        self.fields['img'].required = False

class ImageInline(admin.TabularInline):
    model = Imagens
    extra = 1
    form = ImageAdminForm

class PostAdmin(admin.ModelAdmin):
   search_fields = ['title']
   inlines = [ImageInline]
   form = ImageAdminForm  
   def save_model(self, request, obj, form, change):
     obj.save()
     files = request.FILES.getlist('imgens')
     for f in files:
          x = Imagens.objects.create(post=obj,img=f)
          x.save()

admin.site.register(Post, PostAdmin)
Вернуться на верх