`django_table` component

未關閉
#90 2 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

  • #100 來自 @Archmonger —— 已關閉,未合併

評估

難度
5/5
預估耗時
一週以上
新手友好度
20/100
Issue 類型
功能
描述清晰度
需要釐清
活躍度
停滯
技術堆疊
django, python, react
領域
backend, frontend

研究方向

No source files or tests are named. Start with the proposed django_table entry point and the query_set and columns interface, then compare the listed Material UI, Data Grid, TanStack Table, and Django-Tables2 directions before choosing a design. Done means a table-rendering component can conveniently render Django querysets with a settled interface.

由索引模型根據 Issue 內容生成。

描述

complexity: 1 (high) priority: 3 (low)
Current Situation

There is currently has no support for conveniently rendering tables from Django querysets.

Proposed Actions

Create a table rendering component. The interface can be developed a few ways:

  1. Inspired by Material UI Table
  2. Inspired by Data Grid
  3. Inspired by TanStack Table
  4. Inspired by some other ReactJS table library
  5. Compatible with Django-Tables2 interface.
    • This option is iffy, since it would be difficult to attach ReactPy event handlers to things.
Draft Interface
# https://mui.com/x/api/data-grid/data-grid-pro/
django_table(
    {"example-prop-value": 123},
    query_set=ExampleQuerySet(),
    columns=[
        {
            "name": "ID",
            "header": "ID",
            "cell": lambda x: None,
        },
        {
            "name": "Name",
            "header": "Name",
            "cell": lambda x: None,
        },
        {
            "name": "Age",
            "header": "Age",
            "cell": lambda x: None,
        },
    ],
    checkbox_selection=True,
    checkbox_selection_visible_only=False,
    classes="example",
    edit_mode="cell" or "row",
    filter_debounce_ms=150,
    # get_cell_class_name=lambda x: None,
    # get_detail_panel_content=lambda x: None,
    # get_row_class_name=lambda x: None,
    # get_row_id=lambda x: None,
    hide_footer=True,
    initial_state=None,
    # is_cell_editable=lambda x: None,
    # is_group_expanded_by_default=lambda x: None,
    # is_row_selectable=lambda x: None,
    loading=True,
    page_size_options=[10, 25, 50, 100],
    row_selection=True,
    slots_props={},
    slots={},
    sorting_order="asc" or "desc",
    # pinned_rows={"left": [], "right": []},
    # pinned_columns={"top": [], "bottom": []},
    # row_reordering=False,
    on_cell_click=lambda x: None,
    on_cell_double_click=lambda x: None,
    on_cell_edit_start=lambda x: None,
    on_cell_edit_stop=lambda x: None,
    on_cell_key_down=lambda x: None,
    on_column_header_click=lambda x: None,
    on_column_header_double_click=lambda x: None,
    on_column_header_enter=lambda x: None,
    on_column_header_leave=lambda x: None,
    on_column_header_out=lambda x: None,
    on_column_header_over=lambda x: None,
    on_column_order_change=lambda x: None,
    on_filter_model_change=lambda x: None,
    on_menu_close=lambda x: None,
    on_menu_open=lambda x: None,
    on_preference_panel_close=lambda x: None,
    on_preference_panel_open=lambda x: None,
    on_process_row_update_error=lambda x: None,
    on_row_click=lambda x: None,
    on_row_double_click=lambda x: None,
    on_row_edit_commit=lambda x: None,
    on_row_edit_start=lambda x: None,
    on_row_edit_stop=lambda x: None,
    on_cell_modes_model_change=lambda x: None,
    on_pagination_model_change=lambda x: None,
    on_row_modes_model_change=lambda x: None,
    on_row_selection_model_change=lambda x: None,
    on_sort_model_change=lambda x: None,
    pagination_model=None,
    row_modes_model=None,
    row_selection_model=None,
    sort_model=None,
    # disable_children_filter=False,
    # disable_children_sorting=False,
    # disable_column_filter=False,
    # disable_column_menu=False,
    # disable_column_pinning=False,
    # disable_column_reorder=False,
    # disable_column_resize=False,
    # disable_column_selector=False,
    # disable_density_selector=False,
    # disable_multiple_columns_filtering=False,
    # disable_multiple_columns_sorting=False,
    # disable_multiple_row_selection=False,
    # disable_row_selection_on_click=False,
)
主要語言
Python
星號
357
分支
22
平均合併
10 小時 31 分鐘
30 天內合併 PR
2

貢獻指南

這個儲存庫沒有索引到貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

reactive-python/reactpy-django 的其他 Issue

查看 reactive-python/reactpy-django 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。