Моя форма ссылается на модель Django с полем изображения, в котором сохраняется URL-адрес изображения, указывающий на папку / media /.
По умолчанию форма генерирует фрагмент изображения, где "Обзор ..."отображается кнопка, как на рисунке ниже.
Когда я нажимаю кнопку «Обзор», я получаю диалоговое окно загрузки файла, указывающее на мой рабочий стол.
Мой вопрос: Как мне заставить этот диалог указывать на мою / медиа / папку?
- То, чего я в конечном итоге пытаюсь добиться, - это возможность выбирать среди уже загруженных изображений в папке / media /.Если приведенная выше идея слишком надумана, что может быть предложено в качестве альтернативы в качестве основного решения проблемы?
Я пытался изменить класс ClearableFileInput(FileInput)
, но мне не хватает необходимого уровня навыков, чтобы бытьУспешно, и у некоторых есть предчувствие, это может быть лучше.
Отлично для некоторой помощи.
models.py
class Product(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
reference_date = models.DateTimeField(auto_now_add=True)
product_image = models.ImageField(default='product_image/default.jpg', upload_to='product_image')
Iиспользуйте Cripsy формы, помощник формы для генерации формы.
forms.py
class ProductForm(ProductModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
Image = 'product_image'
self.fields[Image].label = 'Product Image'
self.helper.layout = Layout(
Field(Image),
)
settings.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
urls.py
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)