Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 13, 2016 09:06:27

Oris_37
Зарегистрирован: 2015-04-22
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Мультизагрузка в Django Forms!

Доброго всем времени суток. Я использую для создания и редактирования. И мне требуется загружать несколько файлов. Подскажите как реализовать этот момент, НЕ добавляя в model.py ещё 1 поле для файла?

models.py

# Джанго Форма Добавление/Редактирование товара
class FormSite(forms.Form):
    name = forms.CharField(max_length=250,
                            label=u'Наименование',
                            required=False)
    artikul = forms.CharField(max_length=15,
                              label=u'Артикул')
    good_type = forms.ModelChoiceField(queryset=GoodType.objects.all(),
                                  label=u'Тип',
                                  required=False)
    is_complect = forms.BooleanField(required=False,
                                label=u'Комплект')
    parent = forms.ModelChoiceField(queryset=Good.objects.filter(is_complect=is_complect),
                                    label=u'Выбор комплекта',
                                    required=False)
    brand = forms.ModelChoiceField(queryset=Brand.objects.all(),
                                   label=u'Бренд',
                                   required=False)
    description = forms.CharField(max_length=700,
                                  label=u'Описание')
    default_picture = forms.ImageField(label=u'Фото товара',
                                       required=False)
    price = forms.IntegerField(label=u'Цена')
    agreement = forms.ModelChoiceField(queryset=Agreement.objects.all())
    shape = forms.ModelChoiceField(queryset=ShapeGood.objects.all(),
                                   required=False)
    width = forms.IntegerField(label=u'Ширина')
    height = forms.IntegerField(label=u'Высота')
    depth = forms.IntegerField(label=u'Глубина')
    weight = forms.IntegerField(label=u'Вес изделия')
    appointment = forms.ModelChoiceField(queryset=Appointment.objects.all())

views.py

def newaddgood(request):
    params = request.POST
    newgood = models.Good()
    newgood.name = params['name']
    newgood.agreement_id = params['agreement']
    newgood.appointment_id = params['appointment']
    newgood.artikul = params['artikul']
    newgood.brand_id = params['brand']
    newgood.depth = params['depth']
    newgood.description = params['description']
    newgood.good_type_id = params['good_type']
    newgood.height = params['height']
    newgood.price = params['price']
    newgood.shape_id = params['shape']
    newgood.weight = params['weight']
    newgood.width = params['width']
    if request.FILES.__len__() == 0:
        params['default_picture'] = 'nophoto.jpg'
        newgood.default_picture = params['default_picture']
    else:
        d = handle_uploaded_file(request.FILES['default_picture'], params['artikul'])
        newgood.default_picture = d
    if 'is_complect' in params:
        newgood.is_complect = True
        newgood.parent_id = params['parent']
        newgood.save()
    else:
        newgood.is_complect = False
    newgood.save()
    return HttpResponsePermanentRedirect('/')

Офлайн

#2 Янв. 13, 2016 09:52:34

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Мультизагрузка в Django Forms!

Во-первых, где модель?
Во-вторых, “мне требуется загружать несколько файлов” и “НЕ добавляя в model.py ещё 1 поле для файла”. Зачем несколько файлов, если поле одно? Куда вы все остальные кроме одного девать то будете?
В-третьих, а вы точно знаете про ModelForm?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version