Item.objects.filter(code__zip=1).filter(code__zip=2).filter(code__zip=3).filter(code__zip=4)
qs = Item.code.through.objects.filter(code__zip__in=[1, 2, 3, 4])
from django.db.models import Count
qs = qs.values('item_id').annotate(count=Count('id')).order_by().filter(count=4)
from django.db import models
from my_auth.models import User
class StatusEvent(models.Model):
EVENT_TYPES = [
('subscription', 'User subscribed to premium')
]
user = models.ForeignKey(User, related_name='events')
time = models.DateTimeField(auto_now_add=True)
type = models.CharField(max_length=16, choices=EVENT_TYPES)
class Meta:
ordering = '-time'
from datetime import datetime
from django.contrib.auth.models import User as DefaultUser
class User(DefaultUser):
@property
def status(self):
event = self.events.filter(type='subscription').first()
if event and datetime.now() - event.time < self.subscription_duration:
return 'premium'
def
или function
, прототипное наследование или традиционное классовое, наборы системных API, и так далее - не так уж и большая разница. Требует лишь привыкания и практики.mydict['myname']
не намного длинней, чем myname
.OrderedDict
для того, чтоб гарантировать порядок значений, и зная этот порядок, написать что-то вродеmyvar1, myvar2 = mydict.values()
Столкнулся однажды с той же проблемой. Но из лени решил последовать принципу Sorl Thumbnail, который формирует пути так:
/your_media_folder/b1/08/b108d1217ae0ec3d38c1e6c174c032ce.jpg
У меня опыт небольшой. Python, Django, Flask, и по большей части - на oDesk. По моему мнению, самое что ни на есть важное - это: 1) выбор адекватных заказчиков, способных точно объяснить, что им надо, и желательно - технически компетентных; 2) Грамотное общение с ними. На всякое предложение о работе подписывается много людей. Чтобы выделиться среди этой толпы, необходимо потратить определённое время и силы. Внимательно прочесть предложение, подумать над ним и сформулировать в ответном письме вкратце:
- Ваш опыт, пусть и кратко, относительно данного проекта.
- Ваше представление о том, как следует реализовать этот проект (вкратце; но можно двумя словами, но желательно - обоснованно, упомянуть о том, что вот такую-то фичу вы реализуете с помощью MongoDB для пущей скорости). Пустословия и популизма не надо.
- Предполагаемые сроки. Я их обычно завышаю раза в два. Это позволяет решить задачу с запасом и устранить возможные баги, глюки и т.п. Гораздо лучше, чем обнаружить потом, что времени катастрофически не хватает.
Очень хорошо, если Вы сразу напишете ещё и некоторые рацпредложения. Вежливо и корректно, конечно.
Короче говоря, необходимо 1) найти те проекты, в которые стоит вникать и разбираться; 2) вникнуть и разобраться так, чтобы заказчик понял: Вы - компетентный специалист, работаете на совесть, сделаете обещанное и качественно. По крайней мере, очень постараетесь. Если с самого начала тон общения построен именно так, если Вы задали уровень и поддерживаете его, то в случае возможных проблем, неувязок, нестыковок, как правило, люди относятся с пониманием.
Ну, тут несколько вариантов.
1. Отлавливать исключения таким образом, чтоб они записывались в лог и программа продолжала работу. С моей точки зрения - наилучшее решение. 2. Написать скрипт-запускатель примерно такого рода:
while True:
# Запустить сервис
3. Воспользоваться monit или другим подобным сервисом. Несколько строк в конфиг - и он перезапускает Ваш сервис при падении по любой причине.
Посмотрел книжку. Раньше её не видел. Очень интересно.
Я занимаюсь Питоном с группой старшеклассников по курсам на http://acodemy.ru. Преподаватель из меня не очень за полным отсутствием опыта. Но там очень наглядные и удобные курсы; более того, можно создавать и свои во встроенном редакторе. Таким образом, можно предлагать ученикам прямо в браузере красиво отформатированный текст пособия, питоновскую консоль, холст, на котором можно 2D графику рисовать, опросы, тесты для контроля знаний. Всё это разбито по урокам с оценками, бейджами и статистикой для преподавателя. Обращаюсь к коллективному разуму сообщества.
Вот и моё предложение состоит в том, чтоб попробовать сделать на базе книжки, коль она уж переводится на русский, интерактивный курс. Ибо недостаток курсов по питону на русском языке ощущается явно. Конечно, вся книжка в курс не влезет; хотя бы потому, что там используется tkinter и прочие модули. Но всё же. Стоит?