내 Django 프로젝트에서 열이 동적이며 데이터베이스의 내용에 따라 달라지는 테이블이 있어야합니다. 그래서 here에 해결책을 찾았지만 약간의 문제 만 있지만 작동합니다. 나는이 같은 views.py에서 테이블을 만드는거야Django-tables2 - 동적으로 테이블에 열 추가 - html의 테이블 태그에 attrs를 추가하지 않음
def define_table(roles):
attrs = dict((r.name, tables.Column() for r in roles)
klass = type('DynamicTable', (ClientsTable,), attrs)
return klass
: 여기
class ClientsTable(tables.Table):
class Meta:
model = Client
attrs = {"class": "paleblue", "orderable":"True", "width":"100%"}
fields = ('name',)
def __init__(self, *args, **kwargs):
super(ClientsTable, self).__init__(*args, **kwargs)
self.counter = itertools.count()
def render_row_number(self):
return '%d' % next(self.counter)
def render_id(self, value):
return '%s' % value
그리고 클래스를 확장하는 방법입니다 : 여기에 동적으로 확장하고있어 테이블이 클래스는 다음과 같습니다 내가 원하는처럼
table = define_table(roles)(queryset)
표는 열을 표시하지만 HTML 코드 나는 그것이 attrs에 무시 것을 볼 :
을paleblue에는 CSS 스타일이 없으므로 나에게 중요합니다. 메타 클래스에서 뭔가있을 수 있다고 생각하지만 필드와 모델이 작동하므로 attrs가없는 이유는 알 수 없습니다.
멋진 물건 :
는의 API 문서를 참조하십시오! 내 문제를 정확히 다루지는 않지만 문제를 해결하기 위해 스 니펫을 수정하고 Python'type' 및 메타 클래스 동작에 대해 많은 것을 배웠습니다. Thx 한 덩어리! – schwobaseggl
기쁜 마음으로 도와 줬어! 나는 또한 나의 blog에 유형을 가진 재료를하는 각종 포스트를 썼다 : http://spapas.github.io/category/django.html – Serafeim