如何查看通过 django-tables2 指定的用户数据?
how to see data of user specified through django-table2?
你好,我想创建一个 table,其中只能看到他创建的行,而不能看到其他行,所以我为每一行指定了一个用户
以前我是这样用的-
def see(request):
as=A.objects.filter(user=request.user)
return render(request,'m/see.html',{'as':as})
这工作得很好,后来我通过 Django table 渲染了一个 table 2
我的 tables .py 是
class ATable(tables.Table):
class Meta:
model = A
exclude = ('aid',)
per_page = 2
我想让它成为用户特定的,这样我只能看到从 myuserid 输入的数据,而不是全部
我的 filter.py 密码是
class AFilter(df.FilterSet):
class Meta:
model = A
exclude = ('aid',)
请帮助我应该写什么和在哪里指定用户
已更新- Views.py
class AList(PagedFilteredTableView):
model = A
template_name = "m/see.html"
table_class = ATable
filter_class = AFilter
formhelper_class = AListFormHelper
Utils.py
from django_tables2 import SingleTableView
from django_tables2.config import RequestConfig
class PagedFilteredTableView(SingleTableView):
filter_class = None
formhelper_class = None
context_filter_name = 'filter'
def get_queryset(self, **kwargs):
qs = super(PagedFilteredTableView, self).get_queryset()
self.filter = self.filter_class(self.request.GET, queryset=qs)
self.filter.form.helper = self.formhelper_class()
return self.filter.qs
def get_context_data(self, **kwargs):
context = super(PagedFilteredTableView, self).get_context_data()
context[self.context_filter_name] = self.filter
return context
您可以重写 get_queryset
方法,如下所示。
class AList(PagedFilteredTableView):
model = A
template_name = "m/see.html"
table_class = ATable
filter_class = AFilter
formhelper_class = AListFormHelper
def get_queryset(self, **kwargs):
qs = super(AList, self).get_queryset()
qs = qs.filter(user=self.request.user)
return qs
你好,我想创建一个 table,其中只能看到他创建的行,而不能看到其他行,所以我为每一行指定了一个用户 以前我是这样用的-
def see(request):
as=A.objects.filter(user=request.user)
return render(request,'m/see.html',{'as':as})
这工作得很好,后来我通过 Django table 渲染了一个 table 2 我的 tables .py 是
class ATable(tables.Table):
class Meta:
model = A
exclude = ('aid',)
per_page = 2
我想让它成为用户特定的,这样我只能看到从 myuserid 输入的数据,而不是全部 我的 filter.py 密码是
class AFilter(df.FilterSet):
class Meta:
model = A
exclude = ('aid',)
请帮助我应该写什么和在哪里指定用户
已更新- Views.py
class AList(PagedFilteredTableView):
model = A
template_name = "m/see.html"
table_class = ATable
filter_class = AFilter
formhelper_class = AListFormHelper
Utils.py
from django_tables2 import SingleTableView
from django_tables2.config import RequestConfig
class PagedFilteredTableView(SingleTableView):
filter_class = None
formhelper_class = None
context_filter_name = 'filter'
def get_queryset(self, **kwargs):
qs = super(PagedFilteredTableView, self).get_queryset()
self.filter = self.filter_class(self.request.GET, queryset=qs)
self.filter.form.helper = self.formhelper_class()
return self.filter.qs
def get_context_data(self, **kwargs):
context = super(PagedFilteredTableView, self).get_context_data()
context[self.context_filter_name] = self.filter
return context
您可以重写 get_queryset
方法,如下所示。
class AList(PagedFilteredTableView):
model = A
template_name = "m/see.html"
table_class = ATable
filter_class = AFilter
formhelper_class = AListFormHelper
def get_queryset(self, **kwargs):
qs = super(AList, self).get_queryset()
qs = qs.filter(user=self.request.user)
return qs