Здравствуйте, у меня есть приложение, которое проверяет и подсчитывает искомые термины, обновляя счетчик, если запрос уже был найден, и вставляет поле со счетчиком = 1, если запрос новый.
Модель поискового счетчика:
class Search(models.Model):
term = models.CharField(unique=True, max_length=255)
counter = models.IntegerField()
last_search = models.DateTimeField()
и представление, содержащее это:
# update search counter with term
try:
term = Search.objects.get(term=query)
except Search.DoesNotExist:
term = None
if term:
term.counter = F('counter') + 1
term.last_search = datetime.now()
else:
term = Search(
term=query,
counter=1,
last_search = datetime.now()
)
term.save()
Мой вопрос действительно - это хороший способ сделать это, и есть ли более краткий способ выразить это? Мне это кажется чересчур уродливым, и, будучи новичком в Django, я бы хотел увидеть реализацию «наилучшей практики». Любые ответы приветствуются.