Django не загружает картинку по умолчанию. У меня корень MEDIA подключен к урлам
Я хочу, чтобы поле imageField загружало картинку по умолчанию, если она не загружена пользователем. Когда я загружаю что-то в форму imageField, они попадают в нужную папку. Когда я хочу, чтобы загружалась картинка по умолчанию, она просто не появляется. Я проверил онлайн, но решения, которые я нашел, указывают на вещи, которые я уже сделал (я думаю) правильно.
models.py:
class Ingredients(models.Model):
type = models.IntegerField(choices=ingredientType)
name = models.CharField(max_length=100)
image = models.ImageField(default='no-photo-available-hi.png')
def __str__(self):
return self.name
class DrinkRecipe(models.Model):
name = models.CharField(max_length=100)
ingredients = models.ManyToManyField(Ingredients)
utensil = models.IntegerField(choices=requiredUtensil, default=0)
preparation = models.CharField(max_length=1000)
image = models.ImageField(default='no-photo-available-hi.png')
def __str__(self):
return self.name
def __unicode__(self):
return self.ingredients.name
forms.py:
class DrinkForm(forms.Form):
name = forms.CharField(max_length=100, label="Name:")
utensil = forms.ChoiceField(choices=requiredUtensil, label="Required utensil:")
ingredients = forms.ModelMultipleChoiceField(
queryset=Ingredients.objects.all(),
widget=forms.CheckboxSelectMultiple()
)
preparation = forms.CharField(widget=forms.Textarea)
image = forms.ImageField(required=False)
class IngredientForm(forms.Form):
name = forms.CharField(max_length=100, label="Ingredient name")
type = forms.ChoiceField(choices=ingredientType)
image = forms.ImageField(required=False)
settings.py:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/shakerApp/media')
urls.py проекта (не приложения):
urlpatterns = [...] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Каталог проекта:
|Project
|Project folder
|App folder
|Static
|AppName
|media
|no-photo-available-hi.png
|venv
Попробуйте этот пакет: https://pypi.org/project/django-default-imagefield/
"pip install django-default-imagefield"