我有一张桌子
import django_tables2 as tables
from .models import Account
from django_tables2.utils import A # alias for Accessor
class AccountTable(tables.Table):
nickname = tables.LinkColumn('accounts:detail',args=[A('pk')])
class Meta:
model = Account
attrs = {'class': 'table table-striped table-hover'}
exclude = ("created","modified","destination")
一个看法:
class DetailView(SingleTableMixin,generic.DetailView):
template_name = 'accounts/account_detail.html'
context_table_name = 'table'
model = Account
table_class = AccountTable
context_object_name = object
@method_decorator(login_required)
def dispatch(self,*args,**kwargs):
return super(DetailView,self).dispatch(*args,**kwargs)
def get_context_data(self,**kwargs):
context = super(DetailView,self).get_context_data(object=self.object)
context['title'] = 'Account Detail'
context['pk'] = self.kwargs.get(self.pk_url_kwarg,None)
return context
还有一个模板:
它正确地获取对象pk和所有内容,但不会仅发送一个对象来填充表.我知道它获取对象,因为object.id和object.nickname都正确显示.我知道可以只显示一个特定的对象,因为我在同一个项目中有另一个应用程序只显示一个对象,如果你单击链接将你带到DetailView(我借用我的帐户模型重新创建的模板) ).但它只会显示所有对象的表格.
如有必要,我可以提出请求数据.我可以向你保证我已经在模板上下文中看到了对象,实际上它必须是或者object.id不起作用. django-tables2的诀窍是什么?显然我已经做过一次了!
最佳答案