I am trying to display uploaded images to a template for my imaginary vegetable catalogue.
I have a page to add a new vegetable and upload images. The main template
You're trying to output the model itself, rather than the image field on the model.
You probably want to use a different variable name in your for loop, or it may get confusing later trying to work out what "vegetable" refers to.
Try
{% if view %}
Title: {{ vegetable.title }}
Category: {{ vegetable.category }}
Thumbnail: {{ vegetable.thumbnail }}
Images:
{% for vegetable_image in vegetable.images.all %}
{{ vegetable_image.image.url }}
{% endfor %}
{% else %}
no vegetables found - error
{% endif %}