Контакты

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (20)

Лучшие ответы пользователя

Все ответы (33)
  • Cмысл декоратора property?

    zymanch
    @zymanch
    python/django web-developer
    что, вкратце, делает декоратор property:
    class property(object):
        def __init__(self, fget):
            self.fget = fget
    
        def __get__(self, obj, type = None):
            return self.fget(obj)

    т.о., property реализован через дескриптор, в котором есть только getter
    в случае вашего примера, с точки зрения внутренней архитектуры python, разница будет такова:
    obj = Person()
    # obj.full_name_2()
    Person.__dict__['full_name_2'](obj)
    # obj.full_name_1
    Person.__dict__['full_name_1'].__get__(obj)

    зачем это нужно? для себя я вижу пока что только одну причину - отделить свойства класса от методов, позволив обращаться к "вычисляемым" свойствам не как к функциям, а как к атрибутам
    Ответ написан
    Комментировать
  • Как грамотно организовать проект на Django (приложения, шаблоны, статические файлы)?

    zymanch
    @zymanch
    python/django web-developer
    Обычно разделяю предметные области проекта на отдельные приложения. Если какая-то область слишком обширна, то в папке приложения создаю отдельные приложения для подобластей. Для каждого приложения - своя папка templates: это позволяет при большом количестве приложений не путаться в разросшейся иерархии директорий. Кроме того, отправляю всю обособленную статику в директории static каждого приложения: иногда для работы интерфейса пишу JavaScript приложения на Marionette - всегда знаю, где искать нужную кучу скриптов.
    Для примера: пишем проект для дилерской сети по распространению и продаже автомобилей. Получается так:
    ./project_name/
    ./project_name/settings.py
    ./project_name/urls.py
    ./project_name/static/
    ./project_name/static/css/...
    ./project_name/static/js/...
    ./project_name/static/imgs/...
    ./dealer/
    ./dealer/admin.py
    ./dealer/models.py
    ./dealer/views.py
    ./dealer/urls.py
    ./dealer/templates/
    ./dealer/templates/dealer/
    ./dealer/templates/dealer/list.html
    ./vehicles/
    ./vehicles/admin.py
    ./vehicles/models.py
    ./vehicles/logistics/
    ./vehicles/logistics/models.py
    ./vehicles/logistics/admin.py
    ./vehicles/logistics/views.py
    ./vehicles/logistics/urls.py
    ./vehicles/logistics/templates/
    ./vehicles/logistics/templates/logistics/tracking.html
    ./vehicles/logistics/static/
    ./vehicles/logistics/static/js/app/tracking/
    ./vehicles/logistics/static/js/app/tracking/main.js
    ./vehicles/logistics/static/js/app/tracking/app.js
    ./vehicles/logistics/static/js/app/tracking/...
    ./vehicles/sales/
    ./vehicles/sales/models.py
    ./vehicles/sales/admin.py
    ./vehicles/sales/views.py
    ./vehicles/sales/urls.py
    ./vehicles/sales/templates/
    ./vehicles/sales/templates/sales/invoices.html
    ./vehicles/sales/static/
    ./vehicles/sales/static/js/app/invoices/
    ./vehicles/sales/static/js/app/invoices/main.js
    ./vehicles/sales/static/js/app/invoices/app.js
    ./vehicles/sales/static/js/app/invoices/...
    ./static/
    ./media/
    ./templates/
    ./templates/base.html
    ./templates/...

    Далее по аналогии. Если нужна какая-то мелочь - отправляем ее в соответствующее "корневое" приложение; если мелочь становится более серьезным куском функционала в рамках той же предметной области - создаем ей отдельное приложение внутри уже существующего. Все, что выходит за рамки предметной области - новое "корневое" приложение.
    Ответ написан
    Комментировать
  • Как описывать поля формы если данные модели связаны через foreignkey?

    zymanch
    @zymanch
    python/django web-developer
    class EditForm(forms.ModelForm):
        category = forms.ModelChoiceField(
            queryset=Category.objects.all(),
            label='Categories',
            widget=forms.Select()
        )
    
        class Meta:
          model = Item
          fields = ('category', 'mode', 'type',  'delivery' )

    И, конечно, не забываем импортировать Category из моделей.
    Подробности тут
    Ответ написан
    1 комментарий
  • Работа в связке Excel - Python(?) - 1C?

    zymanch
    @zymanch
    python/django web-developer
    В вашем случае, лучше делать это силами 1С - он отлично умеет цеплять Excel и высасывать из него данные. Но тут уже нужен 1С-кодер, чтобы написать обработку.
    Python тут не лучшее решение - вам придется писать в базу 1С напрямую (может и есть какое-то API, но я про него не слышал), а в ее структуре черт ногу сломает.
    Ответ написан
    6 комментариев
  • Фильтрация объектов в массиве Django?

    zymanch
    @zymanch
    python/django web-developer
    according to документация, вам надо использовать entries__set
    кроме того, совсем не ясно, почему вы пытаетесь фильтровать is_published=True, когда сами же пишете, что нужны неопубликованные...
    Ответ написан
    Комментировать