Задать вопрос
Ответы пользователя по тегу Django
  • В какой директории может лежать проект на Django?

    syschel
    @syschel
    freelance/python/django/backend
    Да уж, советчики.

    Лежать может где угодно. Самый простой способ найти, посмотреть в конфигах апача или нджинкса (в зависимости от того, что используется). Конфиги открываются текстовым редактором. В одном из двух мест, найдёшь.

    апач лежит тут
    /etc/apache2/
    а нджинкс тут
    /etc/nginx/
    Смотришь конфиги, как увидишь упоминание домена, ищи строки с путями. Они и будут указывать туда где лежит сайт.
    Ответ написан
    2 комментария
  • Вопрос по запуску Django сайта на сервере?

    syschel
    @syschel
    freelance/python/django/backend
    leha78: Я обычно окружение конкретного проекта кладу рядом с проектом, но не в саму папку проекта
    - sites
     + project_name_one
        - env (тут окружение)
        - tmp
        - logs
        - source (тут весь код)
      + project_name_two
        - env (тут окружение)
        - tmp
        - logs
        - source (тут весь код)

    И в репозитарий и на вэб-сервер я переношу только папку source, хотя структуру и создаю однотипную. Окружение, логи, временные файлы создаю на сервере с нуля под каждый проект.
    Ответ написан
    Комментировать
  • Стоит ли создавать отдельные модели под отдельные категории товаров в Django?

    syschel
    @syschel
    freelance/python/django/backend
    Вы недавно в разработке. Ибо задача простая. Делайте сразу же масштабируемым магазин. Ибо завтра у вас добавится, ещё один тип товаров и вы полезете опять в код?
    Создаётся три модели:
    1. Категория
    2. Товар
    3. ХарактеристикиТовара

    Товар имеет связь с категорией через ForeignKey и связь с характеристиками через ManyToManyField.
    В итоге вы можете получить все товары выбранной категории и все характеристики товара(ов). В характеристиках заводите два поля "название" и "значение". Ну или разносите на две модели "название" и модель "значение". Во вторую ИД товара, ИД название и CharField значения. В итоге у вас может быть бесконечное количество "типов" товаров со своими персональными характеристиками.
    Ответ написан
    2 комментария
  • Как реализовать доступ к платному контенту в django?

    syschel
    @syschel
    freelance/python/django/backend
    1. Django
    2. Django
    3. Django + API платёжной системы.
    Ответ написан
    Комментировать
  • Как реализовать привязку модели User к постам?

    syschel
    @syschel
    freelance/python/django/backend
    1. У вас бы клавиатуру отобрать за заглавные буквы в именах переменных. Обязательно к прочтению pep8!
    2. Выполните миграцию
    python manage.py makemigrations
    python manage.py migrate

    3. Откуда взялась такая модель User у вас? Есть же базовая, с тем же названием, а у вас она не переопределена по правилам. Без проблем ловить ошибки на конфликтах имён.
    4.
    «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте» © Стив Макконнелл
    Ответ написан
    5 комментариев
  • Где искать актуальные django приложения?

    syschel
    @syschel
    freelance/python/django/backend
    Самое первое место: www.djangopackages.com
    Тут можно смотреть подборки по "тематике".
    К примеру ваш запрос про месседжеры: https://www.djangopackages.com/grids/g/messaging/

    Второе место это PyPi.
    Ответ написан
    1 комментарий
  • Что не так с моей функцией?

    syschel
    @syschel
    freelance/python/django/backend
    get_object_or_404() (source)
    Найти один объект, если не найден то показать 404
    У вас на поиске Heading, не находит его и выдаёт исключение (raise Http404), дальше не идёт выполнение кода. Так же будет ошибка если в базе найдётся больше одного объекта. Тоже выплюнет исключение в 404.
    Ответ написан
    2 комментария
  • Онлайн Сторы на Django. Стоит ли переписывать?

    syschel
    @syschel
    freelance/python/django/backend
    Стоит.
    Проблема для студий на питоне обычно только в одном ключе- поиск разработчиков. Пыхарей найти проще как правило, А если город региональный, то вообще порой засада. Но если не зацикливаться на присутствии в офисе разрабов, а нормально организовать работу "удалённого офиса", то проблем не будет.
    Ответ написан
    6 комментариев
  • Как сделать group_by по определённому полю в Django 1.8?

    syschel
    @syschel
    freelance/python/django/backend
    Django 1.8.4
    queryset.filter(**params).only('dates', 'type_date').select_related(*select_rel).order_by('-dates', '-create')
    queryset.values('dates').annotate(count=Count('dates')).order_by() # Сбросил сортировку


    Получаю запрос
    SELECT `dates`, COUNT(`dates`) AS `count` 
    FROM `gigdate_dateall` 
    WHERE (`dates` IN (2015-08-31, 2015-09-01, 2015-09-02, 2015-09-03) AND `type_date` = 0) 
    GROUP BY `dates` ORDER BY NULL


    Если .order_by() не делаю пустым. то тянет из настроек модели или других вышестоящих над запросом сортировок
    dates = models.DateField(_(u'Дата календаря'), blank=False)
    ...
    class Meta:
        ordering = ['-dates', '-create']

    И тогда группирует по двум полям.
    SELECT `dates`, COUNT(`dates`) AS `count` 
    FROM `gigdate_dateall` 
    WHERE (`dates` IN (2015-08-31, 2015-09-01, 2015-09-02, 2015-09-03) AND `type_date` = 0) 
    GROUP BY `dates`, `create` ORDER BY `dates` DESC, `create` DESC
    Ответ написан
  • Как сделать вход на сайт Django только после авторизации?

    syschel
    @syschel
    freelance/python/django/backend
    Принудительная авторизация:

    project/middleware.py
    from django.core.urlresolvers import reverse
    from django.http import HttpResponseRedirect
    
    class ValidLogin(object):
    
        def process_request(request):
            if not request.user.is_authenticated():
                return HttpResponseRedirect(reverse('signin'))
            return None


    project/settings.py
    MIDDLEWARE_CLASSES = (
        'project.middleware.ValidLogin',
    )


    А раздача прав уже или на уровне url`ов или на уровне вьюх.
    В урлах можно так

    from django.conf.urls import patterns, url
    from django.contrib.auth.decorators import user_passes_test
    urlpatterns = patterns('crm.views',
        url(r'^$', 
            user_passes_test(lambda u: u.is_superuser or u.is_moderator)(HomeCRM.as_view()),
            name='home'),
    )


    Если просто авторизацию через урлы, то так:
    from django.contrib.auth.decorators import login_required
    urlpatterns = patterns('crm.views',
        url(r'^$', 
            login_required(HomeCRM.as_view()),
            name='home'),
    )

    Но это каждую строку урла проверять на авторизацию... А потом ещё думать как реализовать права по грппам. Проще как выше, через middleware авторизацию проверять и слать на форму входа.
    Ответ написан
    3 комментария
  • Django-registration-redux. Как привязать другие модели?

    syschel
    @syschel
    freelance/python/django/backend
    1. Если вы только учитесь. Старайтесь как можно меньше использовать батарейки. Регистрация очень просто делается голой джангой. Плюс даёт понимание многих внутренних механизмов. Советую снести батарейку и сделать ручками.

    2. Вы не верно понимаете принципы(логику). Личный кабинет, ничем не отличается от любой другой страницы сайта. Тот же функционал. Задайтесь вопросом: "что делает юзер в ЛК?". И получите ответ: "он добавляет статьи, картинки и взаимодействует с юзерами(комментарии, лайки)". То есть он в ЛК управляет объектами "стати", "картинки", "комментарии", "лайки". Для этого уже есть модели? Есть! Что делает в ЛК юзер? Добавляет, редактирует, удаляет эти объекты, но только те их единицы, которые он может по привилегиям (владелец, модератор). Зачем тут какие-то ещё модели? Не зачем! Почему такой вопрос задан? Потому что вы не знаете джангу, а пользуетесь готовыми батарейками. Почему так? Потому что вы не хотите учиться. :-)
    Ответ написан
    5 комментариев
  • Symfony2 или Django?

    syschel
    @syschel
    freelance/python/django/backend
    Любой большой продукт, со временем перерастёт уровень "аутсорс" левой студии, в "штат разработчиков внутри компании". На php найти одного специалиста и пачку джуниоров проще, чем на питон одного джуниора.
    Выбор делать нужно именно из этого критерия, оценки поддержки и развития продукта, а не разработку.
    Видел я уже метания одного магазина. Сначала его делали на пхп, потом на руби, потом на питоне. Каждый раз новая студия, каждый раз переписывая с нуля уже рабочий магазин. В итоге последние три года жизни он на питоне (джанго). Но вот в штат чтобы взять питониста, пришлось сильно постараться. В итоге брали пыхарей с переучиванием и плавным ростом.

    Если проект в стол (сделали и забыли). То тут без разницы. Главное уровень и опыт команды в предлагаемой среде.

    З.Ы. Сам я python(django) разработчик, до этого около 8 лет просидевший на php. И лично мне больше нравится python, а php я стараюсь забыть и не вспоминать. Но мы то говорим со стороны заказчика, а не исполнителя.
    Ответ написан
    Комментировать
  • Как использовать Username в качестве slug?

    syschel
    @syschel
    freelance/python/django/backend
    zigen: Разобрался

    И неверно разобрался.

    slug_field [get_slug_field()]

    class MyClassDetailView(DetailView):
        model = User
        slug_field = 'username'


    Ибо def get_object() используется для других целей "немного". К примеру для НЕ явной фильтрации (образно говоря "только для юзеров мужского пола", "только объектов со статусом - отображать" и так далее). Вы же "slug" передаёте в адресной строке, это явный параметр и для этого идёт банальный и правильный slug_field.
    Ответ написан
    Комментировать
  • Файловая структура Django-приложения и установка пакетов?

    syschel
    @syschel
    freelance/python/django/backend
    1. Джанго как пакет - да. Джанго как приложение (ваш код) - НЕТ!!!
    2. pip3
    Ответ написан
  • Как исправить url django?

    syschel
    @syschel
    freelance/python/django/backend
    [04/Jul/2015 14:33:31]"GET /?page=2&querystring_key=page HTTP/1.1" 500 160329
    [04/Jul/2015 14:33:42]"GET /?page=2&querystring_key=page HTTP/1.1" 200 6458


    Что бы посмотреть ошибку при возврате 500, когда шлёте аяксом, достаточно посмотреть в firebug`e или отладчике гуглхрома. Если DEBUG = True

    Ошибка может быть в том, что вы шлёте POST запросом, а ждёт от вас GET. Когда ж вы в браузере инициализируете адрес, то там вы это делаете GET запросом.

    Третье:
    RemovedInDjango19Warning: `request.REQUEST` is deprecated, use `request.GET` or `request.POST` instead.

    Вам говорят, что request.REQUEST устарело и советуют использовать `request.GET` или `request.POST`. Так как это в библиотеке, попробуйте её обновить(не всегда обновление в стабильной паблик версии, посмотрите репозитарий с последней версией).
    Ответ написан
    4 комментария
  • Сначала учить язык программирования или сразу framework?

    syschel
    @syschel
    freelance/python/django/backend
    Сначала язык. Минимум это синтаксис.
    Это как японская поэзия. Что сначала учить, японский язык или сразу хокку?
    Ответ написан
    Комментировать
  • Как настроить nginx + django?

    syschel
    @syschel
    freelance/python/django/backend
    Эммм.. В интернете сотни, даже тысячи статей про настройку джанги под убунту на нджинксе. Все они вам не подошли и вам нужна 1001 статья? Так они все однотипные, принципы одни и теже. Меняются только пути к рабочей папке.
    Ответ написан
    Комментировать
  • Как создать анонимного пользователя в Django?

    syschel
    @syschel
    freelance/python/django/backend
    1. Создайте пользователя с логином и паролем guest
    2. Переопределите функцию авторизации. Добавив проверку на пустые поля.
    if логин и пароль пришли пустые:
        авторизовать под пользователем с ID вашего юзера guest
    else:
        обычная валидация формы
    Ответ написан
  • Как перевести значение Label в python django?

    syschel
    @syschel
    freelance/python/django/backend
    app/models.py
    #-*- coding:utf-8 -*-
    from django.utils.translation import ugettext_lazy as _
    
    class Registration(models.Model):
        ...
        create = models.DateTimeField(_(u"#Создано"), auto_now_add=True, blank=True, null=True)
    
        class Meta:
            verbose_name = _(u'#Регистрация')
            verbose_name_plural = _(u'#Подтверждение регистрации')
    Ответ написан
    1 комментарий