Commit 84170e85 authored by Serge S. Koval's avatar Serge S. Koval

Fixed #52. Added list_display_pk properties to model views

parent 960cbdd5
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
.. autoattribute:: excluded_list_columns .. autoattribute:: excluded_list_columns
.. autoattribute:: rename_columns .. autoattribute:: rename_columns
.. autoattribute:: list_formatters .. autoattribute:: list_formatters
.. autoattribute:: list_display_pk
.. autoattribute:: sortable_columns .. autoattribute:: sortable_columns
......
...@@ -81,6 +81,8 @@ def index(): ...@@ -81,6 +81,8 @@ def index():
class UserAdmin(sqlamodel.ModelView): class UserAdmin(sqlamodel.ModelView):
inline_models = (UserInfo,) inline_models = (UserInfo,)
list_display_pk = True
# Customized Post model admin # Customized Post model admin
class PostAdmin(sqlamodel.ModelView): class PostAdmin(sqlamodel.ModelView):
......
...@@ -123,7 +123,7 @@ class ModelView(BaseModelView): ...@@ -123,7 +123,7 @@ class ModelView(BaseModelView):
if field_class == ForeignKeyField: if field_class == ForeignKeyField:
columns.append(n) columns.append(n)
elif field_class != PrimaryKeyField: elif self.list_display_pk or field_class != PrimaryKeyField:
columns.append(n) columns.append(n)
return columns return columns
...@@ -132,7 +132,7 @@ class ModelView(BaseModelView): ...@@ -132,7 +132,7 @@ class ModelView(BaseModelView):
columns = dict() columns = dict()
for n, f in self._get_model_fields(): for n, f in self._get_model_fields():
if type(f) != PrimaryKeyField: if self.list_display_pk or type(f) != PrimaryKeyField:
columns[n] = f columns[n] = f
return columns return columns
......
...@@ -245,7 +245,10 @@ class ModelView(BaseModelView): ...@@ -245,7 +245,10 @@ class ModelView(BaseModelView):
# TODO: Check for multiple columns # TODO: Check for multiple columns
column = p.columns[0] column = p.columns[0]
if column.foreign_keys or column.primary_key: if column.foreign_keys:
continue
if not self.list_display_pk and column.primary_key:
continue continue
columns.append(p.key) columns.append(p.key)
...@@ -270,7 +273,10 @@ class ModelView(BaseModelView): ...@@ -270,7 +273,10 @@ class ModelView(BaseModelView):
column = p.columns[0] column = p.columns[0]
# Can't sort by on primary and foreign keys by default # Can't sort by on primary and foreign keys by default
if column.foreign_keys or column.primary_key: if column.foreign_keys:
continue
if not self.list_display_pk and column.primary_key:
continue continue
columns[p.key] = column columns[p.key] = column
......
...@@ -147,6 +147,11 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -147,6 +147,11 @@ class BaseModelView(BaseView, ActionsMixin):
column_filters = ('user', 'email') column_filters = ('user', 'email')
""" """
list_display_pk = False
"""
Controls if primary key should be displayed in list view.
"""
form = None form = None
""" """
Form class. Override if you want to use custom form for your model. Form class. Override if you want to use custom form for your model.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment