• Как изменить slug на нужный вид?

    ulkoart
    @ulkoart
    none получается тк слаг устанавливается до сохранения записи и self.id работает не ожидаемо, еще нет записи в базе и нет собственно ид. Воспользуйтесь сигналами
    Ответ написан
    Комментировать
  • Django редирект авторизированого пользователя как?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Да.
    Ответ написан
    Комментировать
  • Бесплатный VPS для Python+Django?

    @M25
    амазон когда-то год сервера давал бесплатно
    как сейчас - не знаю.
    Ответ написан
    1 комментарий
  • Как правильно переносить git проект на другую машину?

    GavriKos
    @GavriKos
    Правильно - клонировать репозитории, а не страдать ерундой в виде копирования репы с машины на машину со всем мусором и прочим. Склонировать репу - это 1 команда, не представляю что может быть еще проще. Хоть 100 реп - пихаем в батник и все автоматом склонится куда надо.
    Ответ написан
    3 комментария
  • Как грамотно разделить новости и статьи на сайте?

    @artemsee
    По моему, лучше сделать две разные таблицы.
    1. Не придется в каждом запросе добавлять WHERE type = ?
    2. В будущем, если набор полей изменится для какого либо типа (например у новости появится поле "ссылка на первоисточник"), то получится, что всем записям-статьям придется тянуть за собой это ненужное для них поле. И с течением времени эта разница полей будет только расти.
    Ответ написан
    Комментировать
  • Canvas или svg для динамичных диаграм?

    dom1n1k
    @dom1n1k
    SVG удобнее, Canvas (при должном подходе) быстрее - вот и выбирайте.

    А то я тут делал страничку с отзывчивыми SVG-графиками с библиотекой Chartist.js
    https://gionkunz.github.io/chartist-js/
    На странице их штук 20, но каждый в общем-то довольно простой.
    Так у меня ресайз окна браузера (мощный десктоп, быстрый современный браузер) отрабатывает секунды 2. А на мобильнике всё это дело отрисовывается секунд 5-7.
    Ответ написан
    Комментировать
  • Как сохранить из формы в модель несколько картинок?

    В одну модель сохранить несколько кортинок нельзя(если поле для картинок одно).
    Для сохранения картинок нужно создать новую модель.
    models.py
    class Advert(models.Model):
        category = models.TextField()
        title = models.CharField(max_length=64)
        description = models.CharField(max_length=900)
        date = models.DateTimeField(auto_now_add=True, null=True)
    
    
    class AdvertImage(models.Model):
        advert = models.ForeignKey(Advert)
        photo = models.ImageField(upload_to='uploads/')

    forms.py
    class AddAdvertForm(ModelForm):
        class Meta:
            model = Advert
            fields = '__all__'
    
    
    class AdvertImagesForm(forms.Form):
    
        photos = forms.FileField(widget=widgets.FileInput(attrs={'multiple': True}))
    
        def __init__(self, *args, **kwargs):
            if 'request' in kwargs:
                self.request = kwargs.pop('request')
            super(AdvertImagesForm, self).__init__(*args, **kwargs)
    
        def clean_photos(self):
            # Остаются только картинки
            photos = [photo for photo in self.request.FILES.getlist('photos') if 'image' in photo.content_type]
            # Если среди загруженных файлов картинок нет, то исключение
            if len(photos) == 0:
                raise forms.ValidationError(u'Not found uploaded photos.')
            return photos
    
        def save_for(self, advert):
            for photo in self.cleaned_data['photos']:
                AdvertImage(photo=photo, advert=advert).save()

    views.py
    class CreateAdvertView(View):
        template_name = 'bulletinboard/add_advert.html'
        form_class = AddAdvertForm
        form_images_class = AdvertImagesForm
        model = Advert
    
        def get(self, request):
            form = self.form_class()
            form_images = self.form_images_class()
            return render(request, self.template_name, {'form': form, 'form_images': form_images})
    
        def post(self, request):
            form = self.form_class(request.POST)
            form_images = self.form_images_class(request.POST, request.FILES, request=request)
            if form.is_valid() and form_images.is_valid():
                advert = form.save()
                form_images.save_for(advert)
                return HttpResponseRedirect('/')
            return render(request, self.template_name, {'form': form, 'form_images': form_images})
    Ответ написан
    7 комментариев