Задать вопрос
  • Django bootstrap alerts?

    sim3x
    @sim3x
    0. ексепшен в питоне приведет к 500 ошибке на сервре, так что отдать алерт никак не получится
    1. Если тебе нужно показать ошибку, то тебе нужно во вью предусмотреть переменную, а в темплейте проверить ее

    def foo_view(request):
         return render(request, 'foo_tpl.html', {'is_error': False})


    {% if is_error %}
    shit happens
    {% endif%}
    Ответ написан
    7 комментариев
  • Как в Django CBV реализовать условие if/else?

    pinkevich
    @pinkevich
    Developer
    не совсем понял, но если вы хотите убрать дублирование кода, то можете наследоваться от ArticleDetail:
    class ArticleDetailView(DetailView):
        model = Article
        template_name = "articles/article.html"
    
    class ArticleDetailAddLikeView(ArticleDetailView):
    
        def get_object(self):
            object = super(ArticleDetailAddLikeView, self).get_object()
            object.article_likes += 1
            object.save()
            return object
    Ответ написан
    2 комментария
  • Какие есть бесплатные IDE для Python?

    nobodynoone
    @nobodynoone
    Ответ написан
    Комментировать
  • Есть ли хорошие видеоуроки по Django на русском?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Ответ написан
    Комментировать
  • Как получить значение тега?

    sim3x
    @sim3x
    BS загрузил шаблон для ангуляра, для того чтоб получить циферку, тебе нужно или разобраться как циферку получает сайт, либо морочиться с настоящим браузером и дергать информацию после отработки js
    Ответ написан
    Комментировать
  • Какой фронтэнд для скрипта выбрать?

    Symphony
    @Symphony
    Какой фронтэнд для скрипта выбрать?

    Наивно полагать, что у вас есть выбор.
    Ответ написан
    1 комментарий
  • Как создать кастомное поле в django?

    sim3x
    @sim3x
    The Zen of Python
    
        Beautiful is better than ugly.
        Explicit is better than implicit.
        Simple is better than complex.
        Complex is better than complicated.
        Flat is better than nested.
        Sparse is better than dense.
        Readability counts.
        Special cases aren't special enough to break the rules.
        Although practicality beats purity.
        Errors should never pass silently.
        Unless explicitly silenced.
        In the face of ambiguity, refuse the temptation to guess.
        There should be one-- and preferably only one --obvious way to do it.
        Although that way may not be obvious at first unless you're Dutch.
        Now is better than never.
        Although never is often better than *right* now.
        If the implementation is hard to explain, it's a bad idea.
        If the implementation is easy to explain, it may be a good idea.
        Namespaces are one honking great idea -- let's do more of those!
    Ответ написан
    Комментировать
  • Первый опыт работы в IT?

    sim3x
    @sim3x
    Без навыка гугления у тебя ничего не выйдет
    Пока что даже намека него нет
    Ответ написан
    Комментировать
  • Множестов объектов одним запросом (insert/update)?

    sim3x
    @sim3x
    Цель:
    Меньше обращений к БД, быстрее обрабатывается файл, меньше нагрузка на железо
    напротив - тебе нужно максимум передать в бд пусть сама разруливает

    В постгресе есть механизм транзакции. Грубо говоря, внутри транзакции коммит проходит только после твоей четкой команды.
    Что дает: индекс не пересобирается, пока ты внутри транзакции твои данные не видны для запросов за пределами транзакции (при факапе делаешь роллбек и как ничего и не было)

    Те делаешь https://docs.djangoproject.com/en/1.8/topics/db/tr...

    @transaction.atomic
    def do_stuff():
        # This code executes inside a transaction.

    и в функции делаешь get_or_create
    Делать список на 40к позиций не стоит - работай с каждой строчкой-товаром отдельно
    40к селектов >>> список из 40k

    Все проверки и чистку данных из цсв вынеси в отдельные функции, чтоб у тебя основная функция выглядела просто как набор вызовов

    Очень-очень советую проводить добавление в модель через ModelForm с валидацией - мало ли какой цсв тебе дадут
    Не используй евал и/или исполнение чего-либо из таких файлов
    Чисти от js дескрипшены и тайтлы и вообще все что ты можешь в шаблоне случайно показать без фильтрации ака {{ foo|safe }}

    Помести код в managed commands

    используй профайлер и time ./manage.py do_stuff
    Ответ написан
    Комментировать
  • Какой pip использовать для вывода даты в Django?

    @Mintormo
    Вот это не подойдет? И еще вот это гляньте. И вот еще полезная вещица.
    Ответ написан
    Комментировать
  • Куда съезжать с Ubuntu?

    Ernillew
    @Ernillew
    Администрирую *nix-системы с 1997 года
    > что с бубунты пора съезжать вообще на что-то более серьезное

    Этот человек — клоун начитавшийся форумов для чайников.
    Ubuntu — мэйнстримный дистрибутив. Никуда съезжать с него нет нужды.
    Ответ написан
    6 комментариев
  • Какую базу данных использовать в моем случае?

    @dmitryKovalskiy
    программист средней руки
    Что-то мне говорит что 80-110 колонок - это хреновая архитектура БД.
    Ответ написан
    3 комментария
  • Django. Аналог DEBUG=True на production'е?

    kivsiak
    @kivsiak
    software engineer
    Ну есть такая штука как логи. https://docs.djangoproject.com/en/1.8/topics/logging/ пиши еррор лог в фаил на проде.
    Ответ написан
    Комментировать
  • Не понятний ответ при запросе Djnago?

    sim3x
    @sim3x
    У тебя получилось нагромождение неправильных представлений об архитектуре

    request.user - указывает на текущего авторизированного пользователя
    я залогинился, и через request.user могу отфильтровать, то что сделал я

    Появление вот таких полей свидетельствует, что что-то пошло не так
    user_id = models.IntegerField()
    id_post= models.IntegerField()

    инт предназначен для хранения целых чисел

    Не делай проверки в темплейте
    {% if one_post.pk in all_likes.id_post %}

    Когда твой запрос не дает, того что он по твоему мнению должен вернуть - делай мысленный експеримент.
    Взять из request.user ид пользователя = 2
    Сделать запрос select * from tablename where user_id = 2
    Вернется | 3 | 2 | 25 |
    все верно
    Возможно, я что-то не так хочу или не так делаю

    Отложи свои лайки на полку и пройдись еще раз по туториалу https://docs.djangoproject.com/en/1.8/intro/tutorial01/
    Выучи его до такой степени, что бы самостоятельно написать его копию
    После попробуй поиграть с темплейтами и вью
    После попробуй добавить или убрать что-то из моделей
    Переходи к новому только после того как можешь уверенно сказать, что и зачем ты сделал

    Если на каком-то етапе слишком долго не можешь найти решение - пиши вопрос
    Ответ написан
    4 комментария
  • Не понятний ответ при запросе Djnago?

    @stry3
    Full-stack developer
    1. Пока читал вопрос, пять раз сломал язык и трижды – глаза.
    2. Пожалуйста, попробуйте PHP. В Python программисты, которые не умеют грамотно писать на родном языке, не выживают. Или попробуйте сформулировать свой вопрос на любом другом (включая корейский). Уверен, Вам помогут охотнее.
    3. Данный код, вероятно, будет работать вот так:
    # views.py
    liked_post_ids = UserLikes.objects.filter(user=request.user).values_list('id', flat=True)
    
    # template.html
    {% if post.id in liked_posts_ids %}
        This post was already liked.
    {% else %}
        You can like this post.
    {% endif %}

    4. Ваша модель UserLikes (а по guideline всё-таки корректнее её назвать UserLike) – ни что иное, как ManyToMany между моделью Post и User. Следовательно, правильнее сделать так:
    # models.py
    from django.contrib.auth.models import User
    from django.db import models
    
    class Post(models.Model):
        user = models.ManyToManyField(User)
        slug = models.SlugField()


    Другой вариант через два ForeignKey (тот же ManyToMany, только с "ручной" таблицей). Только не надо делать это руками через "models.IntegerField(blank=True, default=1)". Пусть за Вас думает база.
    Ответ написан
    1 комментарий
  • Есть ли что-то по типу tkinter только на windows?

    gordon_shamway
    @gordon_shamway
    Есть ли что-то по типу tkinter только на windows?

    Есть это tkinter
    Ответ написан
    Комментировать
  • Выбор средств для разработки высоконагруженного веб приложения?

    viktorvsk
    @viktorvsk
    системы (веб сервис), которая должна выдерживать высокие нагрузки и быть масштабируемой.

    достаточно быстро функционал и следовательно посещаемость (по прогнозам - я за это не отвечаю, предо мной просто ставят такую задачу) буду увеличиваться.

    Насколько такой вариант будет выдерживать высокие нагрузки?

    насколько будет быстро работать, учитывая динамическую типизацию


    Это называется преждевременной оптимизацией

    Вам не могут ставить требования "сделать производительную и масштабируемую систему". Вам могут сказать соотношение чтения\записи в базу, ожидаемый RPS (стабильный и пиковый), максимальное время ответа на запрос...

    Узнать, что будет производительным, а что нет - нужно с помощью профайлера, в крайнем случае - по бенчмаркам. Но никак не задавая вопросы на форумах - просто никто не имеет физической возможности дать объективный ответ на абстрактный вопрос.

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

    Если у вас есть опыт с джавой в вебе - делайте на джаве.

    Есть опыт с джаваскриптом - делайте на основе веб-сервисов.

    У каждого подхода есть плюсы и минусы и обычно они субъективны.

    Лучше потратить 2 месяца на прототип и потом - месяц на переписывание, чем сначала 3 месяца думать и делать - а потом понять, что нужно было двигаться в другую сторону.

    Описаны ~80% случаев и ваш с вероятностью > 90% попадает именно в эту область.
    Ответ написан
    1 комментарий
  • Как сделать закрытый сервис вопросов и ответов?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Алгоритм следующий:
    1. Делаете сервис вопросов и ответов.
    2. Делаете для всех неавторизованных пользователей редирект со всех страниц на форму входа.
    3. По вкусу добавляете robots.txt
    4. Profit!

    Если какой-то из шагов алгоритма представляет сложность, есть альтернативный алгоритм:
    1. Обращаетесь к профессионалам.
    2. Profit!
    Ответ написан
    2 комментария