Skip to content

Commit bcfc4e5

Browse files
committed
Support for none label field
1 parent 1346c6f commit bcfc4e5

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

dropdown/helpers.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
def from_model(
1616
model,
17-
label_field: str,
17+
label_field: str = None,
1818
value_field='pk',
1919
q_filter: models.Q = None,
2020
no_limit=True,
@@ -24,7 +24,7 @@ def from_model(
2424
Get dropdown items from given model
2525
2626
@param model: model to get dropdown
27-
@param label_field: name of field which will be label
27+
@param label_field: name of field which will be label (default is `__str__`)
2828
@param value_field: name of field which will be value (default is `pk`)
2929
@param q_filter: additional filter
3030
@param no_limit: no items limit (overriding `LIMIT` in settings)
@@ -48,7 +48,7 @@ def from_model(
4848
queryset = queryset.values(*values)
4949

5050
# order
51-
queryset = queryset.order_by(label_field)
51+
queryset = queryset.order_by(label_field or value_field)
5252

5353
# distinct
5454
queryset = queryset.distinct()
@@ -64,7 +64,7 @@ def from_model(
6464
# results
6565
return [
6666
types.DropdownItem(
67-
label=x[label_field],
67+
label=x[label_field] if label_field is not None else str(x),
6868
value=x[value_field],
6969
context={y: x[y] for y in (context_fields or [])},
7070
) for x in result_list

0 commit comments

Comments
 (0)