• Преобразование строки в название класса?

    petermzg
    @petermzg
    Самый лучший программист
    Вам нужно знать не только имя класса, но и имя модуля.
    Если все в одном файле, то пример будет такой:
    import sys
    
    class TestClass:
    
    	def __init__(self):
    		self.name = 'TestClass - 2'
    		
    	def write(self):
    		print self.name
    
    module = sys.modules[__name__]
    class_ = getattr(module, 'TestClass')
    instance = class_()
    instance.write()
    Ответ написан
    Комментировать
  • Где лучше хранить глобальный циклический буфер посещений(посетителей) сайта?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Про redis.io еще никто не сказал? Тогда я первый - https://redislabs.com/ebook/redis-in-action/part-2...
    Прикрутить к джанго - 5 минут.
    Ответ написан
    1 комментарий
  • Как сравнить каждый элемент в списке Python?

    @zzzevaka
    Читайте help(all) или help(any)

    >>> l=[1,2,3]
    >>> all(l[i] < l[i+1] for i in range(len(l)-1))
    True
    >>> l=[3,2,1]
    >>> all(l[i] < l[i+1] for i in range(len(l)-1))
    False
    Ответ написан
    9 комментариев
  • Как реализовать поиск по названию файла и поиск в самом файле?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    На мой взгляд - наиболее правильным было бы распарсить файлы и занести в БД. И делать поиск уже по базе.
    Ответ написан
    4 комментария
  • Как выгружать изображения на сайт. Django?

    igor_shevchenko
    @igor_shevchenko
    Веб-разработчик
    ForeignKey — это отношение много-к-одному. Вы можете создать много изображений, поместив им в поле post одну и ту же новость.

    Поэтому post.image — это не само изображение, а менеджер, который возвращает все изображения для этой новости. Иными словами, post.image вернет то же самое, что и Images.objects.filter(post=post). Поправить это можно несколькими способами.

    Если вы хотите, чтобы всё просто заработало без значительных изменений:

    <img src="{{ new.image.first().url }}">

    Если у новости действительно может быть много изображений
    {% for image in new.image.all %}
         <img src="{{ image.image.url }}">
    {% endfor %}


    Если у новости может быть только одно изображение:

    class Images(models.Model):
        post = models.OneToOneField(News, default=None, related_name="image")
        image = models.ImageField(upload_to=settings.MEDIA_ROOT,
                                  verbose_name="Image")


    OneToOneField — это отношение один-к-одному. В этом случае post.image уже будет сразу возвращать изображение.
    Ответ написан
  • Является ли значение целым числом?

    a = 10
    >>>isinstance(a, int)
    True
    >>>isinstance(a, float)
    False
    Ответ написан
    Комментировать
  • Как добавить элемент в массив?

    NeiroNx
    @NeiroNx
    Программист
    Для append можно делать так:
    massiv=['1','2','3','4']
    massiv+=['5']

    а для insert так:
    massiv=['1','2','3','4']
    massiv=massiv[0:2]+['5']+massiv[2:len(massiv)]
    Ответ написан
    Комментировать
  • Группировка статей по месяцам в джанго?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Или без CBV

    views.py
    from django.shortcuts import render
    from django.db.models import Count
    from django.db.models.functions import TruncMonth
    
    from .models import Article
    
    def group_by_month(request):
        groups = Article.objects
            .annotate(month=TruncMonth('publication_date'))  # Извлекаем месяц из даты
            .values('month')                                 # Группируем по месяцам
            .annotate(c=Count('id'))                         # Количество статей в месяце
    
        return render(request, 'monthes.html', {'monthes': groups})
    
    
    def articles_in_month(request, month):
        articles = Article.objects.filter(publication_date__month=month)
        return render(request, 'articles', {'articles': articles})
    Ответ написан
    8 комментариев
  • Как преобразовать список чисел в список комплексных чисел в Python?

    @Andy_U
    data=[4, 5, 7, 8, 9, 0, 3, 3, 6, 6]
    c = [complex(a, b) for a, b in zip(data[:-1:2], data[1::2])]
    print(c)
    Ответ написан
    1 комментарий
  • Как исправить данный Traceback?

    aRegius
    @aRegius
    Python Enthusiast
    Судя по тому, что я вижу и читаю - попробуйте убрать скобки:
    вместо {% if current_user.is_authenticated() %}
    так {% if current_user.is_authenticated %}
    Ответ написан
    Комментировать
  • Передать массив через переменные окружения?

    sim3x
    @sim3x
    Проще записать в файл и импортировать оттуда
    Ответ написан
    Комментировать
  • Как платить фрилансерам в белую (субподряд)?

    kumaxim
    @kumaxim
    Web-программист
    Пример №1
    Вы являйтесь ИП в юрисдикции РФ. Ваш подрядчик тоже ИП в РФ.
    Что делать: подписывайте договор на оказание услуги, например, Вы платите 5 т.р. за разработку дизайна.
    Расходы: пересылка конверта с документами в адрес Вашего подрядчика, который будет рисовать дизайн
    Налоги: нет

    Пример №2
    Вы являйтесь ИП в юрисдикции РФ. Ваш подрядчик физическое лицо в РФ.
    Что делать: подписывается гражданко-правовой договор(часто Вы можете встретить сокращение ГПХ - гражданско-правового характера). Он будет точно таким же как договор между ИП, только в качестве исполнителя в нем указано физ.лицо.
    Первое что необходимо помнить при оформлении договора подряда с физ.лицом - коные договора должен быть четко определен, например, "...Исполнитель обязазуется нарисовать Заказчику дизайн-макет сайта кулинарной тематики и предоставить его до 25.10.2016". Ни в коем случае не должно быть указано выполнение какие-либо переодических действий, например, "...Исполнитель обязуется выполнять работы по разработке дизайн-макетов сайтов, в течении 10 дней с момента поступления запроса от Заказчика..." Это уже будет являться трудовым договором, а это уже отдельная тема.
    Расходы: пересылка договора подрядчику + пересылка отчетов в ФНС и ПФР
    Условие: Пусть 5 000 рублей это сумма, за которую работает Ваш подрядчик.
    Налоги:
    1. 13% - налог на доходы физ.лиц
    2. 22% - взнос в Пенсионный фонд
    3. 5,1% - взнос в фонд Обязательного мед.страхования

    Расчет:
    1. 5 000 - 13% = 4350 - столько получит на карточку Ваш исполнитель
    2. 5 000 - 87% = 650 - это 13% НДФЛ
    3. 5 000 + 22% = 1100 - в Пенсионный фонд
    4. 5 000 + 5.1% = 255 - на медицину
    Итог: Ваш подрядчик получает 4350 рублей. Бюджет РФ получает с этого 1975 рублей. Суммарно Вы заплатите 6325 рублей
    Отчеты: в Пенсионный фонд(если не ошибаюсь форма РСВ-1) и в ФНС. В ПФР отчет должен быть отправлен в конце месяца, хотя могу ошибаться. Для наемных сотрудников на трудовом договоре РСВ-1 точно ежемесячно предоставляется. Для людей на договорах подряда точно не скажу, спрашивайте в своем ПФР. В ФНС отчет раз в год до 01.04 должен быть предоставлен.

    Пример №3
    Вы являйтесь ИП в юрисдикции РФ. Ваш подрядчик физическое лицо вне юрисдикции РФ
    Что делать: ежайте в эту самую другую юрисдикцию, открывайте там филиал/представительство и работаете по законам той страны. Деньги сначала со своего ИП кидайте на представительство, а потом с него уже Вашим наемным людям. И да, еще Вас ждет с распростертыми объятиями валютный контроль банка и ФНС внешние операцияии с аффилированными иностранными компаниями любит под микроскопом рассматривать.
    Налоги: не знаю, сильно зависит от страны назначения.

    Пример №4
    Вы являйтесь ИП в юрисдикции РФ. Ваш подрядчик ИП/юр.лицо вне юрисдикции РФ
    Что делать: идти в банк и узнавать что такое валютный контроль, что надо заполнять, сколько это идет и т.д. Точно нужен будет счет в иностранной валюте. Вроде бы, но могу ошибаться, еще нужно будет регистрироваться на таможне, даже если Вы физически через границу ничего перемещать не собирайтесь(тут могу ошибаться).

    Вывод.

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

    @fireSparrow
    Регулярные выражения - очень мощный инструмент, а у вас совсем простая задача.

    Для вашего случая вместо re.findall лучше использовать проверку на вхождение подстроки с помощью ключевого слова in.

    with open(filename,"r") as myfile:
        for line in myfile:
            if var1 in line:
                print(line)


    Здесь вместо filename вставляете путь и имя к вашему файлу, а вместо var1 - что нужно искать.
    Ну и вместо print(line) можете делать с найденной строкой line всё, что вам нужно - например, куда-то сохранить.
    Ответ написан
    Комментировать
  • Ресурсы по django?

    aRegius
    @aRegius
    Python Enthusiast
    Здравствуйте.
    Еще ресурсов? Пожалуйста:

    TaskBuster Django Tutorial
    Tango With Django
    Try Django Tutorial
    Django Packages
    Classy Class-Based Views
    Awesome Django
    GoDjango
    Django REST framework
    Django Vanilla Views

    UPD
    Не в моих правилах давать непрошеные советы, поэтому не в качестве истины в последней инстанции, а в качестве мыслей вслух:
    1. Как бы от такого количества материала не образовалась "каша" в голове :)
    2. На сегодняшний день я склоняюсь к такому варианту изучения Django с нуля:
    a) Django. Подробное руководство, Джейкоб-Каплан Мосс и Адриан Головатый. Почему, Зачем и Как от непосредственных создателей фреймворка. Да, немолода, но все так же актуальна.
    б) Руководство Django Girls. После того, как вы осилите пункт а), можете приступать к практике, и ничего проще, быстрей и понятней Django Girls на этом этапе вы не найдете.
    в) Django by Example + Two Scoops of Django. Создавайте что душе угодно + "шлифуйте" свои знания примерами лучших практик.

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

    aRegius
    @aRegius
    Python Enthusiast
    И да, и нет. Все зависит от цели. Постараюсь объяснить.

    Я уже как-то упоминал про тот факт, что люди воспринимают информацию по-разному. Мой приоритет - книги (а не аудио/видео, например). Мой подход к обучению - step-by-step, от простого к сложному, одна технология в фаворе. Но эта последовательность не линейна - на определенном этапе она становится цикличной, или, что точнее, спиралевидной: в пройденном, как тебе кажется, материале ты начинаешь замечать новые моменты, ранее упущенные из виду.

    Пример:
    я начинал с Доусона. Проработав капитально, взялся за Лутца. После - Fluent Python, Python Cookbook и иже с ними... (HTML, Django, CSS, работа над собственным проектом - это я все опускаю, как не относящиеся к сути вопроса детали. Говорим только про Python и книги.)

    Так вот, к Доусону я больше не возвращался, к Лутцу - иногда возвращаюсь, а "иже с ними" я перечитываю по кругу и каждый раз открываю для себя что-то новое. Это, скорее всего, связано с тем, что всякий раз ты возвращаешься на исходную позицию с уже более прокачанными знаниями/пониманием, отстутствие которых не позволяет охватить все и сразу с первой попытки; плюс, каждый автор преподносит один и тот же материал с другой стороны (другими примерами), что дополнительно углубляет твое понимание пройденого.

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

    Замечу, что все вышеописанное базируется на предположении, что вы стремитесь к максимальному развитию в рамках своей технологии. На мой взгляд, нельзя объять необъятное и хвататься за все сразу; step-by-step, как я говорил. Должна быть, по меньшей мере одна крепкая база + сопутствующее. Но эта база должна быть отшлифована до блеска, как птичьи плоды одного из небезызвестного персонажа из бронзы, расположеного на севере парка Боулинг-Грин в Финансовом квартале Нью-Йорка, в двух кварталах южнее Нью-Йоркской фондовой биржи.

    Для меня такой базой, в настоящее время, является Python. Ему я и уделяю большую часть времени, распределяя оставшееся на Прочее. А вот когда я абсолютно и полностью исчерпаю Python - буду искать следующую Приоритетную цель на его место. И так далее. Процесс, фактически, бесконечен.

    Вот именно поэтому справочник не нужен. В нем просто нет резона. У вас всегда должен быть под рукой актуальный материал, который будет двигать вас вперед. В этом смысле справочник - это некий костыль для постигшего дзен, умудренного опытом Змея, которому уже лень думать, некуда развиваться, но иногда нужно по-быстренькому напомнить себе о временах буйной молодости, воспоминания о которых можно освежить в памяти открыв 135-ую страницу - первый абзац, вторая строка :)

    Ну а если все вышенаписанное не про вас, Python так, мимо проходил, тогда, может быть, да. Вот очень неплохой вариант.

    P.S. Про литературу в целом можете посмотреть ТУТ.
    Ответ написан
    2 комментария
  • Как разделить модель на несколько блоков в админке?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    В старые времена для поля sex нам хватало кортежа из двух значений!
    3a4723c5b1d626ad4e51aa020f658393.jpg

    Возможно, вам поможет django-modeladmin-reorder.
    Ответ написан
    1 комментарий
  • Как сравнить значения словаря в Питон 3.5?

    @Bojczuk
    result = []
    for i in obj:
        if all(item in i.items() for item in custom.items()):
            result.append(i)
    return result
    Ответ написан
    Комментировать
  • Какое из двух простых условий использовать?

    aRegius
    @aRegius
    Python Enthusiast
    Приветствую, weranda.

    Python, каким я его для себя принимаю, и каким его видят разработчики, к мнению которых я прислушиваюсь - это в первую очередь выразительность/читабельность/удобство восприятия кода. Оптимизация после. А маниакальное стремление впихнуть все в одну строчку (а-ля "А вот я могу и так") - это еще после того, как после.

    Поэтому вариант 1.

    Дополнительный, более наглядный, пример навскидку к сказанному:

    хуже:
    >>> my_lists = [[[1, 2, 3], [4, 5, 6]]]
    >>> flat = [x for sub1 in my_lists for sub2 in sub1 for x in sub2]
    >>> flat
    [1, 2, 3, 4, 5, 6]


    лучше:
    >>> my_lists = [[[1, 2, 3], [4, 5, 6]]]
    >>> flat = []
    >>> for sub1 in my_lists:
             for sub2 in sub1:
    	             flat.extend(sub2)
    >>> flat
    [1, 2, 3, 4, 5, 6]


    Такова моя точка зрения.
    Ответ написан
    Комментировать
  • Как вывести из модели связи с Foreign Key?

    winordie
    @winordie
    Лучшая документация -- исходники
    Snachala nado opredelit related_name dlya Vospitately.vospet_crushek
    class Vospitately(models.Model):
        fio = models.CharField(max_length=40)
        dolshnost = models.CharField(max_length=80, default='Должность..')
        image = models.ImageField()
        vospet_crushek = models.ForeignKey(Cruski', related_name='vospitately')
        def __str__(self):
            return self.fio

    Potom vo view mogno tak sdelat
    def kruzhki(request):
        q = Cruski.objects.all()
        return render(request,'krushki.html',{'kruzki':q})

    I nakonec v shablone pishem chto to po tipu takogo
    {% block kruzhki %}
    {% for krug in kruzki %}
    <p><b>{{ krug.name }}</b></p>
    {% for vospet in krug.vospitately.all %}
    <p> {{ vospet.fio }}</p>
    {% endfor %}
    <p>{{ krug.description }}</p>
    <p>{{ krug.price }}</p>
    {% endfor %}

    Vot i vse. Takim obrazom u nas vivoditsya krugki i vospitately kotorie v nis sostoyat.

    Kstati vam bi opredelitsya stoit kak pisat "кружки":
    - Cruski
    - vospet_crushek
    - kruzhki
    - kruzki
    - krushki.html
    Ответ написан
    3 комментария