• Как переопределить имена объектов в forms.ModelMultipleChoiceField в Django Admin?

    @FireGM
    https://docs.djangoproject.com/en/1.7/ref/contrib/...

    там много примеров. Если вкратце, то создаёте у модели новую функцию, которая возвращает количество. Добавляем allow_tags. Идём в админку и прописываем lists_display. Всё.
    Правда я для manytomany не использовал. Только для foreignkey.
    UPD:
    Решил проверить, все нормально работает. Только не совсем то, но принцип понятен.
    models.py
    from django.utils.html import format_html
    
    class PostTag(models.Model):
        title = models.CharField(max_length=255)
    
        def __str__(self):
            return self.title
    
        def get_count_posts(self):
            return format_html('<span style="color: red">{0}</span>', self.post_set.count())
    
        get_count_posts.allow_tags = True
    
    class Post(models.Model):
        title = models.CharField(max_length=255)
        post_tag = models.ManyToManyField(PostTag, null=True, blank=True)
    
        def __str__(self):
            return self.title


    admin.py
    from games.models import PostTag, Post
    
    
    class PostTagAdmin(admin.ModelAdmin):
        list_display = ('title', 'get_count_posts')
    
    
    admin.site.register(PostTag, PostTagAdmin)
    admin.site.register(Post)
    Ответ написан
    Комментировать
  • Настройка хостинга?

    @Oioraen
    Пригласите специалиста.
    Ответ написан
    4 комментария
  • Какую базу данных использовать для скрипта на python?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    А для такой простой штучки не подойдет ли вам SQLite? Вроде нормально.
    В базу все же надо писать. Ведь зачастую людям нужно не только узнать текущий курс, но и сравнить с предыдущими и понять динамику, которую тоже хорошо бы отображать. Это дает больше информации и не загружает страницу. А на счет отображения графика, таблицы, динамики, это можно сделать как дополнительная ссылочка или спойлер, который изначально скрыт
    Ответ написан
    Комментировать
  • Возможно ли запускать скрипт на сервере через время?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Если linux, то https://ru.wikipedia.org/wiki/Cron
    (да и в BSD тоже, и в макоси - главное, не винда).

    Раз в час (в 0 минут каждого часа):
    0 */1 * * * username /path/to/script

    Раз в сутки (в час ночи):
    0 1 * * * username /path/to/script

    где username - пользователь, от которого запускать скрипт.
    Если через crontab -e будете делать, то там username указывать не нужно.
    Ответ написан
    2 комментария
  • Возможно ли запускать скрипт на сервере через время?

    nalomenko
    @nalomenko
    Руководитель отдела разработок в студии «Lava»
    Используйте cron
    Ответ написан
    Комментировать
  • Как правильно задать список возможных значений для атрибута объекта?

    crazyzubr
    @crazyzubr
    Python backend-developer
    class Task(object):
        
        @property
        def priority(self):
            return self._priority
    
        @priority.setter
        def priority(self, value):
            if value not in ('low', 'high', 'medium'):
                raise ValueError('Incorrect priority value')
            self._priority = value
    Ответ написан
    Комментировать
  • Какой ЯП лучше всего подойдёт для данной задачи?

    @asd111
    Python.
    Вместо многопоточности можно использовать grequests - это библиотека requests на основе gevent т.е. non blocking I/O.
    А если многопоточность то:
    вот однопоточный пример.
    import requests
    filename='test_file'
    f = open (filename)
    r =  requests.post(url='http://upload.example.com', data =  {'title':'test_file},  files =  {'file':f})
    print r.status_code
    print r.headers

    manual по библиотеке requests
    docs.python-requests.org/en/latest/index.html

    пример многопоточности

    import threading
    from random import randint
    from time import sleep
    
    def printNumber(number):
       # Sleeps a random 1 to 10 seconds
       sleep(randint(1,10))
       print str(number)
    
    thread_list = []
    
    for i in range(1,10):
       # Instatiates the thread
       # (i) does not make a sequence, so (i,)
       t = threading.Thread(target=printNumber, args=(i,))
       # Sticks the thread in a list so that it remains accessible 
       thread_list.append(t)
    
    # Starts threads
    for thread in thread_list:
       thread.start()
    
    # This blocks the calling thread until the thread whose join() method is called is terminated.
    # From http://docs.python.org/2/library/threading.html#thread-objects
    for thread in thread_list:
       thread.join()
    
    # Demonstrates that the main process waited for threads to complete
    print "Done"
    Ответ написан
    1 комментарий
  • Как оптимальнее хранить в БД timestamp для каждого действия?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Нужно хранить (в БД) время нажатия кнопок (до секунд) и какая кнопка была нажата, как это лучше сделать?

    Таблица
    кнопка | время нажатия
    - это ЕДИСТВЕННЫЙ вариант, который должен приходить в голову автоматически.
    Все остальные фантазии из вас надо выбивать калёным железом.
    Сон разума рождает чудовищ, а фантазия похапешника, не отягощённая даже базовыми принципами программирования, рождает монстров.

    Там, где человек даже с уровнем профильного колледжа (бывш. ПТУ) не задумывается ни на минуту, над проблемой уровня "сколько будет 2х2", доблестный воин while mysql_fetch_array начинает морщить лоб, загибать пальцы, изобретать себе вселенскую проблему. А потом и монстра для ее решения.

    Разумеется, оправданием всех страданий является "меньше нагрузка на сервер, меньше траффик".
    Заботу о серверах я бы вообще законодательно запретил в коде, по крайней в течение первых трех лет кодинга. ещё никогда эта забота не приносила ничего полезного, но вот всякий мусор - в неисчислимых количествах.

    Он сервера-то никогда в глаза не видел, но старательно спасает сервера всего мира от чрезмерной нагрузки. И разумеется, в итоге получает нагрузку увеличенную. Поскольку решая несуществующие проблемы, от неграмотности начинает изобретать способы хранения данных, которые в десятки раз хуже стандартных.

    Идем в мануал и смотрим, сколько занимает какой тип:
    • int - 4 bytes
    • timestamp (mysql) - 4 bytes
    • datetime - 8 bytes - больше чем инт, но все равно меньше, чем самопальное кодирование в хекс.
    Ответ написан
    8 комментариев