Объявите свои аргументы как Optional Variants
, тогда можно протестировать, чтобы видеть, избегают ли они использовать IsMissing()
или проверяют свой тип с помощью TypeName()
, как показано в следующем примере:
Public Function Foo(Optional v As Variant) As Variant
If IsMissing(v) Then
Foo = "Missing argument"
ElseIf TypeName(v) = "String" Then
Foo = v & " plus one"
Else
Foo = v + 1
End If
End Function
Это можно назвать из рабочего листа как =FOO () , =FOO ( номер ) , или =FOO (" строка ") .
Вы можете сделать это, что легко обобщить на большее количество запросов
query = Q()
for search in (prefs.address1, prefs.address2):
if search:
query |= Q(title__icontains=search)
results = Stores.objects.filter(query)
Это?
thefilter = Q(title__icontains=prefs.address1)
if prefs.address2 is not None:
thefilter = thefilter | Q(title__icontains=prefs.address2)
results = Stores.objects.filter( thefilter)