Я пытаюсь сделать что-то, что должно быть простым, но я не могу заставить его работать должным образом.
Я хотел бы отобразить изображения в виде сетки, скажем, 4-6 изображений на столбец ивозможность выбрать один, а затем нажать кнопку отправки.
Моя модель выглядит так:
class MyPicture(models.Model):
name = models.CharField(max_length=60,
blank=False,
unique=True)
logo = models.ImageField(upload_to='logos')
def __str__(self):
return self.name
Моя форма выглядит так:
class MyPictureForm(forms.Form):
def __init__(self, data, *args, **kwargs):
super(MyPictureForm, self).__init__(data, *args, **kwargs)
self.fields['pictures'] = forms.ModelChoiceField(queryset=MyPicture.objects.all())
Мой вид выглядит следующим образом:
def mypicture(request):
form = MyPictureForm(request.POST or None)
if form.is_valid():
#TODO
return render(request, 'myproj/picture.html', {'form': form})
и, наконец, мой хмтл (где я предполагаю, что проблема лежит):
<form action="{% url 'mypicture' %}" method="post">
{% csrf_token %}
{% for s in form.pictures %}
<option value="{{ s.id }}"><img src="{{ MEDIA_URL }}{{ s.logo.url }}"/></option>
{% endfor %}
<input type="submit" value="Submit" class="btn btn-primary"/>
</form>
Фотографии просто не отображаются.Когда я поставил точку останова, в форме я смог дважды проверить правильность выбора адресов изображений.
Я убежден, что ошибка в HTML, но я не мог понять, где, несмотря намои многочисленные попытки.
Может быть, свежим взглядом, вы заметите это за секунды ... надеюсь, что так!:)
Лучшие:
Эрик