• Автоматически присваивать автора с модели?

    @Realmixer
    Full stack Python (Django) web-developer
    В процессе обработки формы перед сохранением статьи назначайте ей текущего пользователя:
    article.user = request.user
    article.save()
    Ответ написан
    3 комментария
  • Можно ли хранить в БД набор изображений?

    @Realmixer
    Full stack Python (Django) web-developer
    Напишите модель изображения, связанную с основной. У этой модели кроме ImageField можно добавить название, описание, сортировочный индекс и т.д. Как правило эти дополнительные данные всегда нужны.

    class Photoalbum(models.Model):
        ...
    
    class PhotoalbumImage(models.Model):
        photoalbum = models.ForeignKey(Photoalbum, ...)
        image = models.ImageField('изображение', ...)
        ...
    Ответ написан
    Комментировать
  • Как пройти аутентификацию CSRF?

    @Realmixer
    Full stack Python (Django) web-developer
    Используйте метод GET. Если же необходим именно метод POST, то добавляйте значение csrfmiddlewaretoken равное куке csrftoken. В вашем случае в функции ajaxTest добавить:

    data['csrfmiddlewaretoken'] = $.cookie('csrftoken');

    Здесь для примера используется древний плагин jquery.cookie. Лучше найти что-то поновее.
    Ответ написан
    Комментировать
  • Как инкрементировать переменную в бд?

    @Realmixer
    Full stack Python (Django) web-developer
    Лучше стараться уходить от циклов в коде, если есть возможность выполнить анализ данных и их изменение на уровне базы данных за минимум транзакций (хотя разумеется есть исключения):

    from django.db.models import F
    
    UserAttribute.objects.filter(energy__lt=100).update(energy=F('energy') + 1)

    Здесь выполнится два sql-запроса:
    1. Первый отберёт нужные экземпляры UserAttribute.
    2. Второй выполнит добавление единицы к energy у каждого экземпляра. Причём произойдёт это за один запрос. Причём база выполнит команду "добавь к имеющемуся energy единицу" вместо "запиши в energy 42".

    Вариант же с отдельными операциями "запрос / анализ / обновление" допускает возникновение ошибочных данных, когда в промежутке между операциями кто-то другой тоже обновит данные. Тогда кто последний сделает запись — то значение и будет в БД.
    Ответ написан
    Комментировать
  • Что лучше в ajax on или oncliсk?

    @Realmixer
    Full stack Python (Django) web-developer
    Я тут немного погуглил за вас. Надеюсь вы не против?

    jQuery Events изнутри

    on — главный метод, позволяет как привязать обработчик непосредственно к элементу, так и делегировать обработку событий; для делегирования необходимо передать необязательный параметр selector;

    Пишем качественный код на jQuery

    Используйте ‘On’

    Последние версии библиотеки jQuery привнесли изменения в функции типа click() — теперь это сокращение от on('click'). В более ранних версиях click() являлся сокращением от bind(). Начиная с версии jQuery 1.7 предпочтительный метод для привязки обработчиков событий — on(). Для единообразия гораздо проще использовать on() везде в подобных случаях.

    // плохо
    $first.click(function(){
        $first.css('border','1px solid red');
        $first.css('color','blue');
    });
    
    $first.hover(function(){
        $first.css('border','1px solid red');
    })
    
    // лучше
    $first.on('click',function(){
        $first.css('border','1px solid red');
        $first.css('color','blue');
    })
    
    $first.on('hover',function(){
        $first.css('border','1px solid red');
    })
    Ответ написан
    Комментировать
  • Какой сервис кнопок "Поделиться" использовать для сайта?

    @Realmixer
    Full stack Python (Django) web-developer
    Сам озадачен этим вопросом. Долгое время пользовался кнопками от Яндекса. Но что-то недавно они не работали некоторое время. И клиенты жалуются на то, что картинки прикрепляются не те, что надо. Заменил на Pluso, настроил вывод og тегов - беда с картинками осталась. Причём оригинальная кнопка, например, одноклассников работает правильно, а кнопки сторонних сервисов нет. Потому что оригинальная кнопка и кнопка pluso генерируют разные адреса. Вероятно дело в том, соц. сети что-то у себя время от времени подкручивают, а сервисы поздно на это реагируют. Зоопарк из оригинальных кнопок разводить не хочется. Так что думаю придётся делать что-то своё. Например, вроде этого: habrahabr.ru/post/156185
    Ответ написан
    Комментировать
  • Какой набор инструментов выбрать для реализации веб-проекта?

    @Realmixer
    Full stack Python (Django) web-developer
    Осмелюсь рекомендовать замечательный фреймворк Django. Почему?
    • Ну во-первых, я в последние годы использую исключительно его и не в курсе, что там у других фреймворков )
    • Во-вторых, в нём есть неплохая админка. Разумеется с регистрацией/авторизацией и правами доступа. Правда без сторонних плагинов права не пообъектные, а на всё множество объектов одного класса. Вот чатика к сожалению нету )
    • В-третьих, в нём есть CBV (class-based views). Это значит, что вьюшки можно писать классами. Соответственно появляется возможность наследовать вьюшки друг от друга, перегружать поля и методы... Но даже если ничего такого не использвать, то код получается очень коротким и лаконичным. Лично я функции с риквестами щупал лишь когда знакомился с фреймворком. Затем меня очень обрадовали CBV и сейчас использую только их. Особенно они подходят для конструирования самодельных админок, если стандартной админки Django будет мало.
    Ответ написан
    Комментировать