Форум сайта python.su
Ребята, сос - никак не могу сохранить картинку через форму.
Вот код:
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)
Офлайн
Исправлено на
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})
Отредактировано wadadaaa (Фев. 8, 2014 13:19:30)
Офлайн
Офлайн
SingularityИсправила, теперь можете помочь?)
http://wiki.python.su/%D0%9A%D0%B0%D0%BA%D0%9F%D0%BE%D0%B4%D1%81%D0%B2%D0%B5%D1%87%D0%B8%D0%B2%D0%B0%D1%82%D1%8C%D0%9A%D0%BE%D0%B4
Офлайн
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)
Офлайн
Посмотрите в 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.
Офлайн
PanovSergey
PanovSergeyшо ?
Посмотрите в request.FILES есть ли реально данные.
Отредактировано Singularity (Фев. 8, 2014 16:04:06)
Офлайн
шо ?Я не вам писал
Отредактировано PanovSergey (Фев. 8, 2014 16:11:18)
Офлайн
Теперь получается
IntegrityError at /addproduct/ products_product.submitter_id may not be NULL
Отредактировано wadadaaa (Фев. 8, 2014 19:57:50)
Офлайн
wadadaaa
Выложите код модели.
Офлайн