• Как сделать urldecode в ajax запросе?

    Проблема с кодировкой. С таким маленьким количеством информации трудно сказать что-то более конкретное.
    Ответ написан
  • Как расширить User используя Django REST?

    Приведу свой пример. Django REST Framework я, правда, пока не использую, но, возможно, поможет разобраться:
    crm/crm/settings.py
    AUTH_USER_MODEL = "profiles.CRMUser"

    crm/profiles/models.py
    from django.contrib.auth.models import AbstractUser
    from django.db import models
    
    
    class CRMUser(AbstractUser):
        org = models.ForeignKey('main.Organization', null=True, blank=True)
    
        def __str__(self):
            return '{} / {}'.format(self.username, self.org.name if self.org else "")
    
        class Meta:
            verbose_name = 'Пользователь'
            verbose_name_plural = 'Пользователи'

    Дальше везде, где нужно использовать модель пользователя, делаю:
    from profiles.models import CRMUser
    Ответ написан
    1 комментарий
  • Как в поле БД сохранить диапазон дат в формате datetime.date из двух полей models.DateField?

    Я у себя в приложении просто методом вычисляю разницу между временными отметками.
    В вашем случае это будет примерно так:

    def get_date_diff(self):
        return (self.checkout - self.checkin).days


    Или, если нужен именно список с объектами datetime.date:

    def get_date_diff(self):
        return [self.checkout + datetime.timedelta(i) for i in range((self.checkout - self.checkin).days)]
    Ответ написан
    Комментировать
  • Как в админке для пользователей разрешить просмотр всех записей?

    Как вариант, можно использовать метод get_readonly_fileds
    Т.е. несмотря на наличие у пользователя прав change_*, редактировать он по факту не сможет, т.к. все поля будут закрыты для изменения.
    class BaseAdmin(admin.ModelAdmin):
        def get_readonly_fields(self, request, obj=None):
            if 'имя группы пользователей' in [g.name for g in request.user.groups.all()]:
                return self.get_fields(request, obj)
            return None


    Дальше можно просто наследовать все модели от BaseAdmin, чтобы вручную не переопределять этот метод.
    @admin.register(MyModel)
    class MyModelAdmin(BaseAdmin):
        pass


    P.S. Мне самому мой способ кажется достаточно костыльным, был бы рад увидеть в ответах более красивое решение.
    Ответ написан
    Комментировать
  • Пишутся ли на Django стартапы?

    Instagram, Pinterest, Disqus, используют Django.

    Вот тут: https://angel.co/django/jobs есть список из 420 стартапов, которые пишут на Django и куда нужны Django разработчики.

    Я делаю стартап на Django, хех.
    Ответ написан
    Комментировать
  • Локализация имени аппликейшена в Django?

    Доступно начиная с django 1.7

    project/myapp/apps.py

    from django.apps import AppConfig
    
    class MyAppConfig(AppConfig):
        name = "myapp"
        verbose_name = "Моё приложение"


    project/myapp/__init__.py

    default_app_config = "myapp.apps.MyAppConfig"
    Ответ написан
    8 комментариев
  • Можно ли писать простые браузерные приложения на Python или Lua, без Javascript?

    В свое время тоже пробовал найти что-то для использования в браузере python, вместо js, но полноценной замены пока, увы, нет.

    Некоторое время перебивался CoffeeScript, потом попробовал ES6 (стандарт вышел этим летом) и так на нём и остался. Так что рекомендую использовать именно его, транслировать код в ES5 через babel и будет вам счастье.

    Python
    a = [1, 2, 3, 4]
    list(map(lambda x: x * x, a))
    >>> [1, 4, 9, 16]
    for i in [1, 2, 3]:
        print(i)
    >>> 1
    >>> 2
    >>> 3

    ES6
    let a = [1, 2, 3, 4]
    a.map(x => x * x)
    >>> [1, 4, 9, 16]
    for(let i of [1, 2, 3])
        console.log(i)
    >>> 1
    >>> 2
    >>> 3

    Вот, кстати, неплохая книжечка по ES6, советую пробежаться.
    Ответ написан
    Комментировать
  • Где проектировать Restful API?

    Ответ написан
    Комментировать
  • Перспективы для глупых людей?

    А можете объяснить, почему вы считаете себя тормозом? Люди учатся годами и даже те, кто уже работают, делают это не как в фильмах, где строки кода набираются столь быстро, что их еле успеваешь прочесть. Нет, профессиональные программисты тоже тратят время на решение проблемм, обдумывание сложностей, тоже допускают ошибки. Может вы и не тормоз вовсе, а обычный человек.

    p.s. Дополнительная информация всё-таки не помешала бы, вдруг действительно IT это не ваше и лучше заняться чем-то другим.
    Ответ написан
    Комментировать
  • Есть ли рускоязычная среда програмирования?

    Нужно сначало лезть по документации изучить язык, затем узнать что существуют библиотеки(opengl например) затем научиться с ними работать, затем узнать что есть всякие api(winAPI или qt) , и научиться работать с ними. И только потом вывести пиксель на экране.


    Представьте себе, да. Программирование это труд, причем непростой, причем этому надо учиться. Вы же не жаловались в школе, что 11 лет изучали математику, хотя можно просто использовать счетные палочки и складывать / вычитать при помощи них. Или что, прежде чем писать длинные тексты, сначала надо научиться говорить на языке, понимать его, потом читать, потом писать буквы, слова, учиться выражать свои мысли и т.д. Сколько времени вам потребовалось, чтобы достичь текущего уровня? Много... Вот так же и с программированием. Учить его нужно с основ, с алгоритмистики, логики, мышления. Не ждите, что у вас сразу будут получаться хотя бы такие вещи как тетрис. Сначала потребуется потратить несколько месяцев, чтобы самостоятельно вникнуть, разобраться. И учиться придется непрерывно, в этой области учатся все. Постоянно. По другому никак. Параллельно учите английский, где-то через годик сможете владеть им на достаточном уровне для чтения документации. А пока есть достаточно русскоязычных материалов, чтобы освоить программирование на начальном уровне и создавать что-то простое, но полезное.
    Ответ написан
    Комментировать
  • Что по советуете подростку в программировании?

    Я бы рекомендовал Python.
    Лично мне писать на нем намного приятнее. Сам начинал изучение с C++, но т.к. учился я по книжке о языке, а не о программировании, то ничего толкового не вышло.
    Python будет проще изучать т.к. в нем можно сфокусироваться именно на программировании, а не на конструкциях языка. Рекомендую книгу Dive into Python для начала, затем советую перейти к Саммерфилду: Программирование на Python 3. Подробное руководство

    Но при этом я бы всё равно не забрасывал Java куда-то на полку, а просто отложил бы ее изучение на пару месяцев. Тогда изучать ее будет проще, т.к. ты уже будешь уметь программировать и тебе придется учить именно язык.

    Ещё дам пару советов, которые я дал бы лично себе, если бы мог вернуться в прошлое(да, мне всего 17, но все же):
    1. Больше практикуйся. Уделяй в день хотя бы час времени на изучении программирования. Главное делай это постоянно. Результаты не заставят себя ждать.
    2. Займись подготовкой к олимпиадам. Поступить в хороший вуз (МГУ / ВШЭ / ИТМО) без них крайне сложно. А чтобы выиграть олимпиады нужно готовиться не меньше года. Я вот начал слишком поздно и не успел.

    p.s. Если что можешь обратиться с доп. вопросами в ЛС, отвечу.
    Ответ написан
    2 комментария
  • Как слить списки в Python?

    Вот тоже чувствую, что что-то такое должно быть, подписался, может подскажут.

    А так на ум приходит только
    x = [[a[i], b[i], c[i]] for i in range(min(len(a), len(b), len(c)))]


    UPD
    Я вспомнил про zip, я вспомнил.
    x = list(map(list, zip(a, b, c)))
    Ответ написан
    4 комментария
  • Django учебник на русском (актуальный по сей день)?

    djbook.ru больше ничего годного на русском не нашел, только если блоги, но там отрывочная информация.
    И учи английский, он обязательно пригодится, чтобы тот же stackoverflow читать.
    Two scoops of django из книг советую почитать, но она на английском опять таки.
    Ответ написан
    Комментировать
  • Чем плоха база на MS Access?

    А может она и не плоха для тех задач, которые выполняет? Вот откуда человеку со стороны об этом знать, если подробностей нет?
    Ответ написан
    Комментировать
  • Как в админке сделать подменю?

    Почитай внимательно, тут много чего полезного по этой теме есть: djbook.ru/rel1.8/ref/contrib/admin/index.html

    Если в кратце, то тебе надо частично переписать шаблоны админки + добавить JavaScript код. Думаю это дало направление, куда копать.
    Ответ написан
  • Как разрулить циклы или как не впасть в рекурсию?

    Прошу прощения за резкость выражений, но это дичайший говнокод.

    Не могу сказать где ошибка, потому что логика работы совершенно не очевидна и не понятно, что вы пытаетесь сделать.

    Вот тут например код после else не выполнится ни при каких условиях.
    for i in request.GET:    
        if item.id == i:
            continue
        if item.id !=i and item.id in request.GET.keys():
            continue
        if item.id !=i and item.id not in request.GET.keys():
            book_image.delete()
        else:
            # пропустим try
            image = Image.obejcts.get(id=i)
            book_img = BookImages(book=book, image=image)
            book_img.save()


    Советую вам хорошо отдохнуть, после чего перечитать какую-нибудь книгу по python, например эту, потом документацию по джанго, после чего вы перестанете задавать такие вопросы.
    Ответ написан
    Комментировать
  • Есть ли книга по Python НЕ для новичков?

    Лично я очень рекомендую книгу Марка Саммерфилда: "Программирование на Python 3. Подробное руководство." Лаконично, структурированно, есть целая глава "Усовершенствованные приемы программирования".
    У этого автора ещё есть книга "Python на практике". До сегодняшнего дня не знал о ней, но обязательно ознакомлюсь.
    p.s. Советую всё-таки подкачать английский. Информации на нем гораздо больше.
    Например вот неплохой курс Problem Solving with Algorithms and Data Structures ( оказывается всё-таки есть Перевод на русский)
    Ответ написан
    Комментировать
  • Язык для олимпиадного программирования?

    Вполне подходит для олимпиад. Скорости в большинстве случаев хватает, на всех этапах/олимпиадах в России поддеживается. Если по скорости не укладывается, то лучше переписать на С/C++/Java, но в большинстве случаев проблема скорости возникает из-за недоработанного алгоритма, а не из-за языка. Кстати на некоторых олимпиадах нет ограничения по скорости выполнения. Например на московской олимпиаде по программированию нужно было вообще только ответы сдавать, т.е. можно было очень быстро написать совершенно неоптимизированное решение, поставить минут на 15 выполняться(способ весьма грязный, but who cares). В итоге за 20 минут есть ответ. А если делать качественно, то на размышления и кодирование больше времени суммарно выйдет.

    Комментарий писал с прицелом на школьные олимпиады, т.к. судя по посту автор ещё школьник.
    Ответ написан
    1 комментарий