I had a quick dab at Django & Openstack Horizon frameworks in order to build a dashboard for one of our Openstack projects.
Our requirement was to show a table on the UI with the corresponding CRUD functions. I had used DataTable for this purpose, where in you define the table structure in tables.py and the view rendering is defined in views.py
If a column is defined to be a link, DataTable by default uses the object id of each row to generate the corresponding link. In my scenario, I needed the link to point to a different object. Openstack's documentation was not very helpful and a quick grep through the openstack's code gave me the idea.
The approach to generate a custom link is as follows inside a DataTable:
Our requirement was to show a table on the UI with the corresponding CRUD functions. I had used DataTable for this purpose, where in you define the table structure in tables.py and the view rendering is defined in views.py
If a column is defined to be a link, DataTable by default uses the object id of each row to generate the corresponding link. In my scenario, I needed the link to point to a different object. Openstack's documentation was not very helpful and a quick grep through the openstack's code gave me the idea.
The approach to generate a custom link is as follows inside a DataTable:
from django.core.urlresolvers import reverse
def get_custom_link(datum):
return reverse('horizon:myproject:mydashboard:detail',
kwargs={'key': datum.value})
The value of the key will be used to generate the URL.
class MyDataTable(tables.DataTable):
myvar = tables.Column('myvar_name',
verbose_name=_("My Variable"),
link=get_custom_link)
Comments