Ответы пользователя по тегу Django
  • Почему django smuggler выдает ошибку 500?

    Terras
    @Terras Автор вопроса
    В общем. Еще нет поддержки django 1.10 требуется контент процессор, который выпилили в 10 версии.
    Ответ написан
    Комментировать
  • Как исправить путь при загрузке изображения с формы в django?

    Terras
    @Terras Автор вопроса
    В общем. Там есть такая настройка:

    THUMBNAIL_MEDIA_URL = '' - по-умолчанию она дает такой же путь, как и медиа рут. И если мы режем фото на этапе загрузки, то идет процесс:

    Берем фото из формы + добавляем руты
    Режем фото в шорткат + добавляем руты

    В итоге идет двойной медиа рут.

    Если поставить вот так THUMBNAIL_MEDIA_URL = '/' - то рут второй раз не ставится, и все окей.
    Ответ написан
    Комментировать
  • Как увеличить ширину для django-ckeditor, но при этом сделать его адаптивным?

    Terras
    @Terras Автор вопроса
    Решение - костыль:

    <script>
    
        $(document).ready ( function(){
            $(".django-ckeditor-widget").css({"width" : "100%"});
        });
    
    </script>
    Ответ написан
  • Как создать группы на сайте Django?

    Система, какая:

    Джанго имеет встроенные группы. Каждая группа имеет свои собственные права (которые можно создать назначать, удалять). Членство в группе назначается на модель юзера, права также назначаются на юзера.

    В итоге:

    1) Используешь API- для создания группы
    2) Создаешь в рамках данной группы права (perminission).
    3) Дальше назначаешь на юзеров членство в группе и их права.

    Я допустим с помощью данной штуки разделял платных и бесплатных пользователей, и определял тарифы для платных.

    т.е. юзер при оплате добавляется в группу платных пользователей, а зависимости от тарифа получает те или иные права в рамках этой группы. Ну и уже через вьюшку/шаблон определять, что и как выводить для юзера
    Ответ написан
    1 комментарий
  • Как выбрать конкретный комментарий на странице?

    Terras
    @Terras Автор вопроса
    Oscar Django
    пример:
    есть video.id = 1, у него два коммента (id=1, id=2),
    есть video.id = 2, у него три коммента (id=3, id=4, id=5).
    Тебе достаточно передать только id комментария, тк все комментарии хранятся в одной таблице и у них не может быть одинаковых id вне зависимости от того к какому видео они относятся
    Ответ написан
  • Как правильно работать с лайками в Django?

    Terras
    @Terras Автор вопроса
    Вот так вышло:

    Модель видео

    class Video(models.Model):    
        thumbnumber = models.IntegerField(default=0, help_text="Начинается с 0", verbose_name="Число лайков")
        likedone = models.ManyToManyField(User, related_name='users_video_main')


    Вьюшка добавления лайка:

    def upvideolike(request, add_id):
    
        if request.user.is_authenticated():
            video_item = Video.objects.get(id = add_id)
            user_tags = User.objects.filter(users_video_main = add_id)
            current_user = request.user
            if current_user not in user_tags:
                try:
                    video_item = Video.objects.get(id = add_id)
                    video_item.thumbnumber +=1
                    video_item.likedone.add(current_user)
                    video_item.save()
                    return redirect('/video'+ add_id)
                except ObjectDoesNotExist:
                    return redirect('/video'+ add_id)
            else:
                return redirect('/video'+ add_id)
        else:
            return redirect('/video'+ add_id)


    Пока сделал так, потом буду переделывать, чтобы обрабатывалось в режиме реального времени.
    Ответ написан
    Комментировать
  • Как сохранить thumbnails при загрузке изображения?

    Terras
    @Terras Автор вопроса
    Как при загрузке из поля ImageFiled взять изображение, взять из него thumbnail и сохранить в базу только thumbnail

    1) Устанавливаем easy-thumnails

    2) Создаем обычную модель (никаких расширений и прочей фигни):

    class Profile(models.Model):    
        avatar = models.ImageField(upload_to='', blank=True, null=True, help_text="Идеальный размер 150 на 150 пикселей", verbose_name="Аватар юзера")


    3) Делаем обычную django форму:

    class Profile_Form(forms.Form):
        avatar = forms.ImageField(label='Загрузить Аватар', required=False)


    4) Делаем вьюшку:

    from thumbnails import get_thumbnail
    
    def update_profile(request, add_id):
        token = {}
        token.update(csrf(request))
        if request.user.is_authenticated():
            current_user = request.user
            if request.POST:
                form = Profile_Form(request.POST or None, request.FILES or None)
                if form.is_valid():
    
                    avatar = form.cleaned_data['avatar']
    
                    options = {'size': (200, 200), 'crop': True}
                    thumb_url = get_thumbnailer(avatar, relative_name='avatar').get_thumbnail(options).url
                    
                    profile_obj = Profile(avatar=thumb_url)
                    profile_obj.save()
    
                    return redirect('/profile'+ add_id, token)
                else:
                    return redirect('/profile'+ add_id, token)
            else:
                return redirect('/profile'+ add_id, token)
        else:
            return redirect('/profile'+ add_id, token)


    В итоге, мы загружаем любую фотку, которую может обработать Pillow, вырезаем из неё нужный нам Thumbnails и сохраняем его в модель.

    В случае ошибки я просто возвращаю базовую страницу, вы можете написать свои обработчики ошибки.
    Ответ написан
    Комментировать
  • Что надо знать для django?

    Привет.

    1) Смотришь видюшки от этого мужика: https://www.youtube.com/user/shadrus - этого тебе хватит, чтобы понять, что такое django, и как она работает.

    2) Начинаешь делать свой проект и знакомишься на практике со всеми её особенностями. Решаешь вопросы, которые появляются с помощью гугла, там все есть, сам проверял.

    3) Подключаешь документацию и начинаешь разбираться в особенностях и кастомизации, когда нужно пилить уже сложные фичи.

    Фреймворк очень большой, с большим числом настроек, но далеко не все будут нужны в рабочем проекте. И изучать их придется уже в ходе реализации.

    P.s. "переменные и типы, условные конструкции, циклические конструкции, функции и списки?" - Это Питон, это не Джанго.
    Ответ написан
    3 комментария
  • Как сделать сквозной элемент с динамическими данными в Django?

    Terras
    @Terras Автор вопроса
    Нашел решение:

    Inclusion tags - https://docs.djangoproject.com/en/1.9/howto/custom...

    Логика:

    Создаем библиотеку тегов, создаем в ней тег, который рендерит модель в шаблон, подключаем тег во все шаблоны. Работает. По скорости правда не подскажу насколько будет грузить все.
    Ответ написан
  • Как вывести в админке редактирование для ManyToManyFiled модели?

    Terras
    @Terras Автор вопроса
    Короче, весь день копался. Итого:

    1) Эта штука официально не поддерживается в Django.
    2) Есть различные махинации со сведением двух моделей в третью (посредник) для настройки, но там тоже мужеложество какое-то получается.
    3) Есть спекулятивные решения на основе APi, которые устраивают челночные бега и прописывают и создают модели. Но тоже доверия не вызывает.

    В общем!
    Ответ написан
    Комментировать
  • Как использовать поле ImageField в Django?

    Terras
    @Terras Автор вопроса
    Нашел мою же проблему, которую починили, но для новой версии джанги, уже не хочет работать:

    stackoverflow.com/questions/5517950/django-media-u...

    т.е. определили медиа руты, добавили в модель аплоад, загрузили фото = получили сообщение о том, что по такому url картинка не находится.

    тот, код, что там приводится в качестве лекарства, на версии 1,9 на локальной машине не работает.
    Ответ написан
    Комментировать