Size: a a a

Django [ru] #STAY HOME

2019 October 16

U

UUID8 in Django [ru] #STAY HOME
спасибо
источник

U

UUID8 in Django [ru] #STAY HOME
UUID8
Есть модель LinkedData, у которой поле many - это manyToMany filed к модели UnsortedData.

Вот так проверяю, есть ли какой-то объект из UnsortedData в LinkedData:
        if LinkedData.objects.filter(many__in=unsorted_objects).exists():
           return HttpResponse('exists')
       else:
           return HttpResponse('not exists')


Вроде нормально работает и с
.exists()
и без. Типа так тоже норм:
if LinkedData.objects.filter(many__in=unsorted_objects):


есть ли смысл
.exists()
писать?

И еще вопрос: так
if LinkedData.objects.filter(many__in=unsorted_objects).exists():
я проверяю на совпадение хотя бы в одной записи, а как вернуть exists, только если, все объекты из
unsorted_objects
есть в
LinkedData__many
?
это:
        unsorted_objects = ObjectDataUnsorted.objects.filter(id__in=(ids))

       query = LinkedData.objects.filter(many__in=unsorted_objects)
       if query.exists():
           if unsorted_objects.count() != len(query):
               return HttpResponse('Not all exists')
           else:
               return HttpResponse('exists all')
       else:
           return HttpResponse('not exists')


норм решение?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
UUID8
это:
        unsorted_objects = ObjectDataUnsorted.objects.filter(id__in=(ids))

       query = LinkedData.objects.filter(many__in=unsorted_objects)
       if query.exists():
           if unsorted_objects.count() != len(query):
               return HttpResponse('Not all exists')
           else:
               return HttpResponse('exists all')
       else:
           return HttpResponse('not exists')


норм решение?
давай на gist
источник

U

UUID8 in Django [ru] #STAY HOME
Dan Tyan
давай на gist
источник

DT

Dan Tyan in Django [ru] #STAY HOME
id__in=(ids) - зачем круглые скобки ?
источник

U

UUID8 in Django [ru] #STAY HOME
Dan Tyan
id__in=(ids) - зачем круглые скобки ?
не знаю(
источник

DT

Dan Tyan in Django [ru] #STAY HOME
UUID8
не знаю(
len(query)

НИКОГДА так не делай
источник

DT

Dan Tyan in Django [ru] #STAY HOME
у тебя же слева используется .count()
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Dan Tyan
len(query)

НИКОГДА так не делай
я даже не пойму что оно даст))
источник

AF

Anton Fircak in Django [ru] #STAY HOME
оно не сработает же, или выдаст еррор
источник

U

UUID8 in Django [ru] #STAY HOME
Dan Tyan
len(query)

НИКОГДА так не делай
на SO увидел(
источник

AF

Anton Fircak in Django [ru] #STAY HOME
UUID8
на SO увидел(
что такое so?
источник

U

UUID8 in Django [ru] #STAY HOME
Anton Fircak
что такое so?
источник

AF

Anton Fircak in Django [ru] #STAY HOME
понял
источник

A

Andrey in Django [ru] #STAY HOME
Anton Fircak
я даже не пойму что оно даст))
финализирует кверисет
источник

A

Andrey in Django [ru] #STAY HOME
ничего хорошего, в общем
источник

AF

Anton Fircak in Django [ru] #STAY HOME
UUID8
на SO увидел(
а можно ссылку на этот код?)
источник

U

UUID8 in Django [ru] #STAY HOME
Anton Fircak
а можно ссылку на этот код?)
в истории не нашел с queryset`ом. мб это массив был
источник

AF

Anton Fircak in Django [ru] #STAY HOME
UUID8
в истории не нашел с queryset`ом. мб это массив был
мб, ну кароч есть метод count как сказал @dantyan он тебе вернет кол-во элементов
источник

DT

Dan Tyan in Django [ru] #STAY HOME
UUID8
в истории не нашел с queryset`ом. мб это массив был
там проблема в том что

queryset.count() - сделает запрос SELECT count() и верент тебе число
len(queryset) - сделает select * из таблицы(весь лям твоих записей) загонит их в список и посчитает количество элементов в списке
источник