Как я могу добавить дополнительный столбец с помощью django table2?
Я изучаю django и как использовать приложение django-table2. На данный момент я могу отображать своих пользователей в таблице на главной странице. Но я не могу найти способ добавить колонку с кнопкой удаления для каждой строки.
tables.py
class UserListTable(tables.Table):
class Meta:
model = User
exclude = ("password", "is_superuser", "is_staff", "is_active", "last_login", "date_joined")
attrs = {
'class': 'paleblue',
'th': {
'class': 'TEST',
},
}
view.py
@login_required(login_url="/login")
def home(request):
table = UserListTable(User.objects.all())
# Update data when they are sorted
RequestConfig(request).configure(table)
if isInGroup(request, 'Student'):
return render(request, 'main/home_student.html')
else:
return render(request, 'main/home_staff.html', {
'table': table,
})
шаблон
{% extends 'main/base.html' %}
{% block title %} Home page - Staff {% endblock %}
{% block content %}
// other code here
{% load django_tables2 %}
{% render_table table %}
{% endblock %}
Возможно ли это вообще? Я читал документацию, но, возможно, я пропустил, где это объясняется.
Я сам нашел способ (не уверен, что это лучшее решение или нет) :
таблицы:
class UserListTable(tables.Table):
delete = tables.LinkColumn(
'account_delete',
args= [A('pk')],
attrs= {
'a': {'class': 'btn'}
},
text = 'Delete',
)
class Meta:
model = User
exclude = ("password", "is_superuser", "is_staff", "is_active", "last_login", "date_joined")
attrs = {
'class': 'paleblue',
'th': {
'class': 'TEST',
},
}
url :
path('account/delete/<int:pk>/', views.account_delete, name='account_delete')