![](/img/trans.png)
[英]Django_tables2 How to identify each table when using MultiTableMixin in Django Template
[英]How to set an unspecified value to Meta class (How to create a template table class) django_tables2
我有 30 多个表,所以我不想为所有这些表编写相同的代码。 甚至它的复制粘贴。 我所有的表都应该是这样的:
class MyTable(tables.Table):
edit_link = tables.columns.Column(viewname='edit_table_field',
kwargs={'table_name': 'MyModel', 'pk': A('pk')}, text='edit)
...
class Meta:
model = MyModel
...
我想从这个类中制作一个模板,它将模型的名称( MyModel )作为参数,并为一个类中的每个人创建相同的表。 我不知道如何将值从类传递到元类。
另外,也许有人知道 python 的任何框架,它为我的表实现映射和 CRUD 方法,就像它在 Vaadin (Java) 中一样?
由于 python 是一种高度动态的语言,您可以通过多种方式实现这一点。 想到的一个(您可以在函数内声明类,也可以将它们作为常规对象传递/返回):
def get_table(model_cls):
class ModelTable(tables.Table):
edit_link = tables.columns.Column(
viewname='edit_table_field',
kwargs={'table_name': model_cls.__name__, 'pk': A('pk')},
text='edit'
)
...
class Meta:
model = model_cls
...
return ModelTable
tables = [
get_table(model)
for model in (Brand, Product, Category) # Your models here
]
您也可以扩展它以生成完整的视图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.