Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Не сохраняется картинка через django-form [RSS Feed]

#1 Фев. 8, 2014 10:44:17

wadadaaa
Зарегистрирован: 2012-08-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Не сохраняется картинка через django-form

Ребята, сос - никак не могу сохранить картинку через форму.
Вот код:

class AddproductForm(forms.ModelForm):
    class Meta:
        model = Product
        exclude = ("submitter",)
class AddProduct(CreateView):
    model = Product
    form_class = AddproductForm
    def form_valid(self, form):
        f = form.save(commit=False)
        f.submitter = self.request.user
        f.save()
        return super(CreateView, self).form_valid(form)
    def addimg(request):
        if request.method == "POST":
            form = AddproductForm(request.POST, request.FILES)
            form.save()
    def get_success_url(self):
        return reverse("profile", kwargs={'slug': self.request.user})

Отредактировано wadadaaa (Фев. 8, 2014 13:19:06)

Офлайн

#2 Фев. 8, 2014 12:08:54

wadadaaa
Зарегистрирован: 2012-08-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Не сохраняется картинка через django-form

Исправлено на

class AddProduct(CreateView):
    model = Product
    form_class = AddproductForm
    def form_valid(self, form):
        f = form.save(commit=False)
        f.submitter = self.request.user
        if request == 'POST':
            f = AddproductForm(request.POST, request.FILES)
        f.save()
        return super(CreateView, self).form_valid(form)
    def get_success_url(self):
        return reverse("profile", kwargs={'slug': self.request.user})
через admin сохранются, через форму никак

Отредактировано wadadaaa (Фев. 8, 2014 13:19:30)

Офлайн

#3 Фев. 8, 2014 12:17:48

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Офлайн

#4 Фев. 8, 2014 13:20:26

wadadaaa
Зарегистрирован: 2012-08-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Не сохраняется картинка через django-form

Офлайн

#5 Фев. 8, 2014 14:26:59

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Не сохраняется картинка через django-form

class AddproductForm(forms.ModelForm):
    class Meta:
    	model = Product
    	exclude = ['submitter',]
class AddProduct(CreateView):
    model = Product
    form_class = AddproductForm
    # Или
    #fields = ['src', 'name'] и т.д.
    def form_valid(self, form):
        form.instance.submitter = self.request.user
        return super(AddProduct, self).form_valid(form)
url(r'^addproduct/$', AddProduct.as_view(), name='addproduct'),
    {{  form.errors }}
<form enctype="multipart/form-data" action="{% url "addproduct" %}" method="post">{% csrf_token %}
{{ form.as_ul }}
    <button type="submit">Загрузить</button>
 </form>

Отредактировано Singularity (Фев. 8, 2014 14:28:25)

Офлайн

#6 Фев. 8, 2014 14:43:38

PanovSergey
От: Екатеринбург
Зарегистрирован: 2013-12-29
Сообщения: 269
Репутация: +  19  -
Профиль   Адрес электронной почты  

Не сохраняется картинка через django-form

Посмотрите в request.FILES есть ли реально данные.
А то вон че в доках пишут то

Note that request.FILES will only contain data if the request method was POST and the <form> that posted the request has the attribute enctype=“multipart/form-data”. Otherwise, request.FILES will be empty.

Офлайн

#7 Фев. 8, 2014 16:00:57

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Не сохраняется картинка через django-form

PanovSergey

PanovSergey
Посмотрите в request.FILES есть ли реально данные.
шо ?

Зачем вообще в form_valid создавать новую форму ? form_valid вызывается когда форма удачно валидируется. Вот все хорошо вместо того что-бы сохранить с подмененным submiter`ом - давайте создадим еще одну форму в которой нет submiter ибо в форме его нет, а мы не ничего вставляли. При чем старая форма удалится ибо её затерли новой переменной и сборщик мусора её удалит.

Отредактировано Singularity (Фев. 8, 2014 16:04:06)

Офлайн

#8 Фев. 8, 2014 16:11:07

PanovSergey
От: Екатеринбург
Зарегистрирован: 2013-12-29
Сообщения: 269
Репутация: +  19  -
Профиль   Адрес электронной почты  

Не сохраняется картинка через django-form

шо ?
Я не вам писал Мы одновременно писали, ваш ответ просто выше моего оказался. И не это, а то что если в шаблоне не указать enctype=“multipart/form-data” все сломается…

Отредактировано PanovSergey (Фев. 8, 2014 16:11:18)

Офлайн

#9 Фев. 8, 2014 19:57:28

wadadaaa
Зарегистрирован: 2012-08-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Не сохраняется картинка через django-form


Теперь получается

IntegrityError at /addproduct/
products_product.submitter_id may not be NULL

Отредактировано wadadaaa (Фев. 8, 2014 19:57:50)

Офлайн

#10 Фев. 8, 2014 20:01:59

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Не сохраняется картинка через django-form

wadadaaa
Выложите код модели.

Офлайн

  • Начало
  • » Django
  • » Не сохраняется картинка через django-form[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version