views:

44

answers:

4

In django how to query the following

    profile_setting = pSetting.objects.get(module="my_mod",setting_value=1) or    pSetting.objects.get(module="my_mod",setting_value=0)
+1  A: 

There is a Q() object for this task - look here: Complex Queries with Q() object

In example:

profile_setting = pSetting.objects.get(
    Q(module="my_mod", setting_value=1) | Q(module="my_mod", setting_value=0)
)
bx2
+2  A: 

Checkout django's Q-class:

profile_setting = pSetting.objects.get(module="my_mod",\
                  Q(setting_value=1)|Q(setting_value=0))

Furthermore to improve your coding style, have a look at some coding guidelines, you should better name your model class PSetting.

lazerscience
I agree about the style - also look at Python's PEP8 (http://www.python.org/dev/peps/pep-0008/) for style guide.
bx2
A: 
 profile_setting = pSetting.objects.get(module="my_mod",setting_value__in=[0,1])
alexdb
+1  A: 

Are you sure that you are grabbing only one object?

If you are trying to grab a queryset of a bunch of objects, all you need to do is chain filters together:

profile_setting = pSetting.objects.filter(module="my_mod", setting_value__in=0).filter(module="my_mod", setting_value__in=1)

However, since everything but setting_value is the same, you can simply look for a list or tuple:

profile_setting = pSetting.objects.filter(module="my_mod", setting_value__in=[0,1])

(alexdb's suggestion above is fine if and only if you are sure that you'll be getting only one object as a response to your query)

Justin Myles Holmes