У меня есть следующий шаблон формы:
<form action="{% url 'reg:create_item' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div class="level">
<div class="level-left">
<div class="level-item">
<div class="field">
<label for={{form.name.id_for_label}} class="label has-text-weight-light">Name</label>
<div class="control">
{{form.name}}
</div>
</div>
</div>
</div>
<div class="level-right">
<div class="level-item">
<div class="field">
<label for="{{form.photo.id_for_label}}" class="label image is-96x96" style="cursor:pointer;">
<img id="dish_thumb" src="https://via.placeholder.com/96" alt="">
</label>
<div class="control">
{{form.photo}}
</div>
</div>
</div>
</div>
</div>
<div class="field">
<label for="{{form.price.id_for_label}}" class="label has-text-weight-light">Item value</label>
<div class="control">
{{form.price}}
</div>
</div>
<div class="field is-grouped">
<div class="control">
<button class="button is-medium is-danger">Cancel</button>
</div>
<div class="control">
<button type="submit" class="button is-medium is-link">Add</button>
</div>
</div>
</form>
, который принадлежит форме:
class ItemForm(ModelForm):
class Meta:
model = Item
fields = ['name','price','photo']
widgets = {
'name': TextInput(attrs={
'class': 'input',
'placeholder': 'Dish name'
})
'price': TextInput(attrs={
'class': 'input',
'placeholder': 'Ex: $45,90'
})
}
и представлению:
class CreateItem(LoginRequiredMixin, PassRequestUserMixin, PermissionRequiredMixin, generic.CreateView):
permission_required = "reg.can_create_item_on_menu"
model = Item
form_class = ItemForm
template_name = 'menu_item_form.html'
context_object_name = 'object_name'
def get_success_url(self, **kwargs):
if kwargs:
return reverse_lazy('reg:item_list', kwargs={'menu_id': self.object.menu.id})
return reverse_lazy('reg:item_list', args=(self.object.menu.id,))
Форма отображаетсяПравильно, но при отправке я получаю отправку по шаблону формы.Я остановил событие с помощью jQuery, чтобы посмотреть, какие данные отправлялись, и заметил, что поле photo
не отправляется.
Что я делаю не так?