0

So I want the imageField to load a default picture when one is not uploaded by user. When I upload something in the imageField form, they end up in the correct folder. When I want it to load a default pic, it simply doesn't show up. I checked online, but the solutions I found point to things that I already have done (I think) right.

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')

project's (not app's) urls.py:

urlpatterns = [...] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Project's directory:

|Project
    |Project folder
    |App folder
    |Static
       |AppName
          |media
             |no-photo-available-hi.png
|venv
Ivan Starostin
  • 8,798
  • 5
  • 21
  • 39
boryswnr
  • 1
  • 3

1 Answers1

0

Try this package: https://pypi.org/project/django-default-imagefield/

"pip install django-default-imagefield"

Rajesh
  • 1
  • 2
  • 1
    As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Jun 08 '22 at 14:34
  • I didn't know this is a thing. Sadly, it doesn't fix the problem. – boryswnr Jun 09 '22 at 07:06