django файл не отправляется через шаблон формы - PullRequest
0 голосов
/ 29 января 2019

У меня есть следующий шаблон формы:

<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 не отправляется.

Что я делаю не так?

...