Уведомления

Группа в Telegram: @pythonsu

#1 Март 25, 2015 18:20:04

eboome
Зарегистрирован: 2013-06-13
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

modelformset_factory, как правильно сделать?

Здраствуйте! Никак не могу сделать так, что б клиент мог загрузить 5 картинок:
Вот модель:

class Photo(models.Model):
    equipment=models.ForeignKey(Equipment, blank=True, null=True, on_delete=models.SET_NULL)
    photo=models.ImageField(upload_to='/path')
    
    class Meta:
        db_table='equipment_photos'
        verbose_name_plural = 'equipment_photos'

вот вюшка:
class CreateEquipmentPhotoView(CreateView):
    form_class=EquipmentPhotoFormSet
    template_name='equipment/add_photo.html'
    
    def get_form_kwargs(self, *args,  **kwargs):
        kwargs = super(CreateEquipmentPhotoView, self).get_form_kwargs()
        kwargs['pk'] = self.kwargs['pk']
        kwargs['request'] = self.request
        return kwargs
    
    def get_queryset(self):
        return Photo.objects.filter(equipment__owner=self.request.user)
    
    def get_success_url(self):
        return reverse_lazy('galary')

вот форма:
EquipmentPhotoFormSet=modelformset_factory(Photo, extra=5)

но ни в какую(

Офлайн

#2 Март 25, 2015 18:28:01

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

modelformset_factory, как правильно сделать?

Нифига не понял. В модели ОДНО поле для изображения. Как вы хотите одним реквестом создать ПЯТЬ объектов, при этом не написав ни строчки дополнительного кода? Видимо надо из реквеста получить пять изображений и в цикле создать пять соответствующих объектов.



Офлайн

#3 Март 26, 2015 12:11:40

eboome
Зарегистрирован: 2013-06-13
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

modelformset_factory, как правильно сделать?

FishHook
Нифига не понял. В модели ОДНО поле для изображения. Как вы хотите одним реквестом создать ПЯТЬ объектов, при этом не написав ни строчки дополнительного кода? Видимо надо из реквеста получить пять изображений и в цикле создать пять соответствующих объектов.
мне нужно:
equipment1 - 1.png
equipment1 - 2.png
equipment1 - 3.png.

вся суть проблемми в том что нужно 5 раз продублировать форму. В доке написаног что нужно юзать modelformset_factory. Но как звязать modelformset_factory с вюшкой и сохранить данные не знаю, так как в доке етого нет.
Создавать 5 полей в форме не вариант

Отредактировано eboome (Март 26, 2015 12:13:29)

Офлайн

#4 Март 27, 2015 00:40:49

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

modelformset_factory, как правильно сделать?

CreateView не умеет работать с FormSet. Если вы хотите использовать CBV - то попробуйте django-extra-views

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version