Django表2限制窗体中的字段

2024-04-25 02:31:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将表中的字段限制为。我看到的唯一方法是通过PersonTable对象,其field属性如下fields=[first\u name,last\u name]。我想从申请表上写下来。我试图重写get\u 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

Tags: 对象方法namefieldfieldsmodelmodelslength
1条回答
网友
1楼 · 发布于 2024-04-25 02:31:03

如果有人遇到同样的问题,那么table类上有一个exclude实例变量,因此您可以重写get\u 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

相关问题 更多 >