class Foo(models.Model):
# ...
free_field = models.ForeignKey(FreeModel, ...)
must_match_m2m_field = models.ManyToManyField(ManyModel, ...)
must_match_fk_field = models.ForeignKey(BarModel, ...)
# ...
# user generates a queryset of Foo in a view:
get_foo_ids = request.GET.get('foo_IDs')
qs_foo = Foo.objects.filter(id__in=get_foo_ids)
< /code>
Итак, пользователь генерирует запрос модели «foo» (с несколькими объектами в нем), которая может содержать много объектов с а) различными свободными, и b), точно соответствующими многомоделям и бармоделям.qs_foo =
#where following must be True:
FooObject_1.must_match_m2m_field.all() == FooObject_2.must_match_m2m_field.all() == FooObject_3.must_match_m2m_field.all()
# and where following must be True also:
FooObject_1.must_match_fk_field == FooObject_2.must_match_fk_field == FooObject_3.must_match_fk_field
< /code>
для объектов Freedom Key, которые я сделал следующим образом (я думаю, что это достаточно справедливо): < /p>
def check_same_objects(object_list):
return len(set(object_list)) == 1
check_bars = check_same_objects(qs_foo.values_list('must_match_fk_field', flat=True))
< /code>
Я сделал это для сравнения списков объектов в областях многомоменов каждого объекта: < /p>
def check_same_lists(object_lists):
for lst in object_lists:
if set(lst) != set(object_lists[0]):
return False
return True
should_match_foos = []
for e in qs_foo:
should_match_foos.append(e.must_match_m2m_field.all().values_list('id', flat=True))
check_manies = check_same_lists(should_match_foos)
# finally checking both 'must-match-fields':
check_both = all([check_bars, check_manies])
< /code>
Какова цель:
Существует другая модель, основанная на модели Foo: < /p>
class Fizz(models.Model):
# model linked to Foo Model, but must persist in DB even if Foo eventually modified or deleted.
# a pack of Fizz derives from a few 'Foo's...
foo_relation = models.ManyToMany(Foo, ...)
# ...
free_field_ = models.ManyToMany(FreeModel, ...)
must_match_with_FOO_m2m_field = models.ManyToManyField(ManyModel, ...)
must_match_with_FOO_fk_field = models.ForeignKey(BarModel, ...)
# additional DataFields which FOO must not have...
Каков более элегантный вариант Pythonic/django проверки, соответствуют ли эти два поля на 100% во всем QS?
Я пытаюсь проверить - в Django - если пользовательский запрос имеет два поля, которые соответствуют 100%. < /p> [code]class Foo(models.Model): # ... free_field = models.ForeignKey(FreeModel, ...) must_match_m2m_field = models.ManyToManyField(ManyModel, ...) must_match_fk_field = models.ForeignKey(BarModel, ...) # ...
# user generates a queryset of Foo in a view: get_foo_ids = request.GET.get('foo_IDs') qs_foo = Foo.objects.filter(id__in=get_foo_ids)
< /code> Итак, пользователь генерирует запрос модели «foo» (с несколькими объектами в нем), которая может содержать много объектов с а) различными свободными, и b), точно соответствующими многомоделям и бармоделям.qs_foo = #where following must be True: FooObject_1.must_match_m2m_field.all() == FooObject_2.must_match_m2m_field.all() == FooObject_3.must_match_m2m_field.all() # and where following must be True also: FooObject_1.must_match_fk_field == FooObject_2.must_match_fk_field == FooObject_3.must_match_fk_field
< /code> для объектов Freedom Key, которые я сделал следующим образом (я думаю, что это достаточно справедливо): < /p> def check_same_objects(object_list): return len(set(object_list)) == 1
check_bars = check_same_objects(qs_foo.values_list('must_match_fk_field', flat=True)) < /code> Я сделал это для сравнения списков объектов в областях многомоменов каждого объекта: < /p> def check_same_lists(object_lists): for lst in object_lists: if set(lst) != set(object_lists[0]): return False return True
should_match_foos = [] for e in qs_foo: should_match_foos.append(e.must_match_m2m_field.all().values_list('id', flat=True)) check_manies = check_same_lists(should_match_foos)
# finally checking both 'must-match-fields': check_both = all([check_bars, check_manies])
< /code> Какова цель: Существует другая модель, основанная на модели Foo: < /p> class Fizz(models.Model): # model linked to Foo Model, but must persist in DB even if Foo eventually modified or deleted. # a pack of Fizz derives from a few 'Foo's... foo_relation = models.ManyToMany(Foo, ...) # ... free_field_ = models.ManyToMany(FreeModel, ...) must_match_with_FOO_m2m_field = models.ManyToManyField(ManyModel, ...) must_match_with_FOO_fk_field = models.ForeignKey(BarModel, ...) # additional DataFields which FOO must not have...
[/code] Каков более элегантный вариант Pythonic/django проверки, соответствуют ли эти два поля на 100% во всем QS?
Это дополнительный вопрос к предыдущему вопросу
( python tkinter — обнаружение клавиш со стрелками при нажатии альтернативной клавиши)
Я также хотел бы иметь возможность чтобы определить, нажата ли функциональная клавиша вместе с клавишей Shift или...
Это дополнительный вопрос к предыдущему вопросу
( python tkinter — обнаружение клавиш со стрелками при нажатии альтернативной клавиши)
Я также хотел бы иметь возможность чтобы определить, нажата ли функциональная клавиша вместе с клавишей Shift или...
Это дополнительный вопрос к предыдущему вопросу
( python tkinter — обнаружение клавиш со стрелками при нажатии альтернативной клавиши)
Я также хотел бы иметь возможность чтобы определить, нажата ли функциональная клавиша вместе с клавишей Shift или...
Я пытаюсь извлечь текст из PDF-файла с помощью Smalot PdfParser.
$parser = new \Smalot\PdfParser\Parser();
$pdf = $parser->parseFile(myfile);
$text = $pdf->getText();
Он работает нормально, за исключением того, что иностранные символы (например,...
Я пытаюсь извлечь текст из PDF-файла с помощью Smalot PdfParser.
$parser = new \Smalot\PdfParser\Parser();
$pdf = $parser->parseFile(myfile);
$text = $pdf->getText();
Он работает нормально, за исключением того, что иностранные символы (например,...