Mar 28 2010

get_first_object_or_none shortcut for Django

Category: Django,Pythonvbmendes @ 10:48

I will talk about a shortcut I developed for the Django framework and always use in my apps. This code is aimed in making a quik shortcut to obtain the first object of a queryset if it exists or None otherwise.

It’s very useful when you want to display the last news in the first page of your website, but don’t want it to break if there isn’t one to show. It’s just a use case for such a code, but there are many more.

In the past I used to write something like this:

try:
    first_user = User.objects.all()[:1][0]
except IndexError:
    first_user = None

This is four lines to do a very simple task and I wanted to evolve this to use only one line of code. So I developed a function that do this to me. It’s inspired in the django.shortcuts.get_object_or_404. Let’s take a look at the code:

def get_first_object_or_none(queryset):
    try:
        return queryset[:1][0]
    except IndexError:
        return None

I’ve put this code in a module called shortcuts inside my project and now everytime I want to use it I can write this code:

from shortcuts import get_first_object_or_none
first_user = get_first_object_or_none(User.objects.all())

I think it’s a very good result and helps a lot in my coding. It also made my code more legible and easy to understand. It increased my productivity and I am publishing to increase others productivity also. Any doubts, questions os suggestions, please leave a comment.

Tags: , , ,


Mar 15 2010

Meio.Autocomplete, Mootools Autocomplete plugin

Category: Ajax,Javascript,Mootoolsfabiomcosta @ 23:15

Meio.Autocomplete Docs and Demos

Yeah, we haven’t posted for a while, but it’s time to show you some great code I’ve been working on these days.

I’ve been searching for a good auto-complete plugin for a while. Found some good ones but none of them is perfect and I sometimes had to change their codes to get what I wanted on my projects. So I got tired and decided that I should do my own. My “perfect” one.

Basically I wanted an auto-complete plugin that would act as a select DOM element, which means, when I select a value on the auto-complete list the id of this option is setted somewhere (a hidden field for example) and I needed to have access to the “select” and “deselect” events, that would be fired when I select and deselect an option, respectively.

Meio.Autocomplete does all these simple tasks and more. It’s full of options and I made it in a way that it would be easy to set it up. I really recommend you to take a look at its documentation and see the demos to understand how it works. You can change the demos code too if you wish and run the resulting code, thanks to Mooshell.

I’m open to new ideas, bug fixes, new options etc… Feel free to comment and ask anything (help included) on the documentations page.

Meio.Autocomplete Docs and Demos