Skip to main content

CRUD View Configuration

Class Attributes

class PatientCrudView(BaseCrudView):
page_title = "Patients" # shown on the page header
add_btn_title = "Add Patient" # label on the Add button (required)
table = PatientTable # your ModelTable subclass
form = PatientForm # your BaseForm subclass

page_title

The heading displayed at the top of the CRUD interface. Set it to describe the records being managed (e.g., "Patient Records", "Product Catalogue").

add_btn_title

The text on the button that opens the add form. This attribute is required — leaving it empty will cause the button to render incorrectly.

table

Your ModelTable subclass. Defines columns, sorting, search, and row actions shown in the list view.

form

Your BaseForm subclass. Used for both the Add form (triggered by the add button) and the Edit form (triggered by row actions of type "form").

Controlling the Add Button

Override display_add_button_check to conditionally show or hide the Add button per user/role:

def display_add_button_check(self, request):
# Show Add button only for Admin role
from zango.core.utils import get_current_role
role = get_current_role()
return role and role.name == "Admin"

Return True to show the button, False to hide it.

Full Example

from ...packages.crud.base import BaseCrudView
from .tables import PatientTable
from .forms import PatientForm

class PatientCrudView(BaseCrudView):
page_title = "Patient Master"
add_btn_title = "Add Patient"
table = PatientTable
form = PatientForm

def display_add_button_check(self, request):
from zango.core.utils import get_current_role
role = get_current_role()
if role:
return role.name in ["Admin", "Manager"]
return False