В настоящее время загрузка файлов не присутствует на странице изменений ModelAdmin
У меня есть модель ProductImages(models.Model) с fk на Product(models.Model).
В /admin/<app>/product/<id>/change/, все поля Product(models.Model), даже другие модели с fk до Product, показывают данные, хранящиеся на db для редактирования, только ProductImages(models.Model) не отображаются currently p.file-upload, например:
Это другая модель (модель пользователя) с ожидаемой работой бахавора.
Но в ProductImages(models.Model) части Product(models.Model) эти данные отсутствуют, я проверил html, может быть на ошибки css, но нет.
Я не использую пользовательский View, используйте admin.urls с пользовательским site.admin.
Код:
models.py
class Product(models.Model):
...#some fields
def __str__(self):
return self.slug or ''
def get_absolute_url(self):
return reverse('product_change', kwargs={'slug': self.slug, 'pk': self.pk})
def save(self, *args, **kwargs):
self.product_title_seo = self.fn_product_title_seo
self.product_title = self.product_title.capitalize()
if not self.slug:
self.slug = slugify(self.product_title_seo)
return super().save(*args, **kwargs)
class ProductImages(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
image_file_w200_png = models.ImageField(
verbose_name = "Imagens",
upload_to=upload_to_image_file_w200_png,
null=True,
blank=True,
default='magickhat-profile.jpg'
)
...
admin.py
class AdminProductImages(admin.TabularInline):
model = ProductImages
form = ProductImagesForm
extra = 10
max_num = 10
list_display = ('image_file_w200_png',)
fieldsets = (
(None, {'fields': ('image_file_w200_png',)}),
)
add_fieldsets = (
(None, {
'fields': ( 'image_file_w200_png'),
}),
)
class Media:
js = ('users/js/img_product_upload.js',)
class AdminProductModel(admin.ModelAdmin):
inlines = [AdminProductImages,AdminProductFeatures]
model = Product
def product_thumb(self, obj):
# return HTML link that will not be escaped
return mark_safe(
'<img src="%s" style="width:30px;height:30px;">' % (ProductImages.objects.filter(product=obj).first().image_file_w200_png.url)
)
list_display = ['product_thumb','user','slug','created_at']
list_display_links = ('slug','product_thumb')
exclude = ['slug','product_title_seo']
def get_queryset(self, request):
qs = super().get_queryset(request)
return qs.filter(user_id=request.user)
forms.py
class ProductForm(ModelForm):
...#only fields and meta to model
class ProductImagesForm(forms.ModelForm):
class Meta:
model = ProductImages
fields = ['image_file_w200_png']
widgets = {
'image_file_w200_png': forms.FileInput(attrs={'class': 'image_add_product'}),
}
Идк, где я могу контролировать это поведение, и что нужно, чтобы показать currently файл, как это делают User Model, как мы видим на первом рисунке.

