我正在尝试将字段限制在我的表格中。我看到的唯一方法是通过PersonTable对象使用字段属性,例如this fields = [first_name,last_name]。我想从申请表中这样做。我试图覆盖get_queryset()方法,但它只能传递少量数据,但列仍然只是空白。有没有一种很好的方法来使用通用视图?
class Person(models.Model):
first_name =models.CharField(max_length=200)
last_name =models.CharField(max_length=200)
user = models.ForeignKey("auth.User") dob = models.DateField()
class PersonTable(tables.Table):
class Meta:
model = Person
fields = [first_name, last_name]
class PersonList(SingleTableView):
model = Person
table_class = PersonTable
答案 0 :(得分:0)
如果有人遇到同样的问题,那么表类上就有一个exclude instance变量,所以你可以覆盖get_table并在你的视图中做这样的事情:
class PersonList(SingleTableView):
model = Person
table_class = PersonTable
template_name = "person.html"
def get_table(self):
table = super(PersonList, self).get_table()
columns = self.request.GET.getlist('column')
tuple_to_exclude = tuple(set(table.columns.names()) - set(columns))
table.exclude = tuple_to_exclude
return table