name: str,
default: str | None = None,
) -> str | None:
- if name in custom_field_data:
+ if name in custom_field_data and custom_field_data[name]["value"] is not None:
return custom_field_data[name]["value"]
elif default is not None:
return default
field_instance.field.data_type,
replacement_text="-",
)
+ if field_instance.value is None:
+ value = None
# String types need to be sanitized
- if field_instance.field.data_type in {
+ elif field_instance.field.data_type in {
CustomField.FieldDataType.MONETARY,
CustomField.FieldDataType.STRING,
CustomField.FieldDataType.URL,
extra_data={"select_options": ["ChoiceOne", "ChoiceTwo"]},
)
- CustomFieldInstance.objects.create(
+ cfi1 = CustomFieldInstance.objects.create(
document=doc_a,
field=cf2,
value_select=0,
with override_settings(
FILENAME_FORMAT="""
{% if "Select Field" in custom_fields %}
- {{ title }}_{{ custom_fields | get_cf_value('Select Field') }}
+ {{ title }}_{{ custom_fields | get_cf_value('Select Field', 'Default Value') }}
{% else %}
{{ title }}
{% endif %}
"Some Title_ChoiceOne.pdf",
)
+ # Check for handling Nones well
+ cfi1.value_select = None
+ cfi1.save()
+
+ self.assertEqual(
+ generate_filename(doc_a),
+ "Some Title_Default Value.pdf",
+ )
+
cf.name = "Invoice Number"
cfi.value_int = 4567
cfi.save()