Как сделать то же самое в Django? - PullRequest
0 голосов
/ 16 ноября 2018

Я хочу добавить условия в мой набор запросов

Как сделать то же самое в Django (Python)?

Мой пример кода ..

#This is example model in php...
class MY_MODEL {
    function search() {
        $params = $this->input->post('params');
        if(@$params['contact']) {
            $this->db->where('contact', $params['contact']);
        }
        return $this->db->get('my_table');
        }
}

# How to do the same in Django (Python) ?? ...
def get_queryset(self):
        my_field = self.request.GET.get('my_field', '')
        try:
            return MY_MODEL.objects.filter(
                                        if @my_field:
                                            Q(my_field__icontains=query)
                            )
        except:
            return MY_MODEL.objects.all()

        ...

С уважением!

1 Ответ

0 голосов
/ 16 ноября 2018

Вы можете попробовать вот так:

def get_queryset(self):
    my_field = self.request.GET.get('my_field', '')
    my_mod_objs = MY_MODEL.objects.filter(my_field=my_field)  # assuming my field is a Model Field in your Model
    if my_mod_objs.exists():  # lazy check if there is any entry for this
        return my_mod_objs
    return MY_MODEL.objects.all()

Проверьте здесь для более подробной информации.

...