django-tables2: LinkColumn: подробный вид, ссылки не отображаются - PullRequest
0 голосов
/ 22 февраля 2019

У меня проблемы с генерацией ссылок для подробного просмотра.Может ли кто-нибудь дать мне некоторое представление о том, где я ошибаюсь.

models.py

class Company(models.Model):
    STATE_CHOICES = (
        ('nsw', 'NSW'),
        ('nt', 'NT'),
        ('qld', 'QLD'),
        ('vic', 'VIC'),
        ('wa', 'WA'),
        ('tas', 'TAS'),
        ('act', 'ACT'),
        ('sa', 'SA')
    )

    company_name = models.CharField(max_length = 100)
    client_code = models.CharField(max_length = 100)
    company_state = models.CharField(max_length = 3,choices = STATE_CHOICES,)

    def __str__(self):
        return self.company_name

    def get_absolute_url(self):
        return reverse('company_list')

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.CompanyList.as_view(), name='company_list'),
    path('<int:pk>/', views.CompanyDetailView.as_view(), name='company_detail'),
    path('new/', views.CompanyCreateView.as_view(), name='company_new'),
]

views.py

import django_tables2 as tables
from django_tables2 import SingleTableView
from django_tables2.utils import A 

class CompanyTable(tables.Table):
    class Meta:
        model = Company
        attrs = {'class': 'mytable table table-striped table-bordered table-hover'}
        company_name = tables.LinkColumn('company_detail', args=[A('pk')])
        orderable = False     

class CompanyList(SingleTableView):
    model = Company
    table_class = CompanyTable


class CompanyDetailView(DetailView):
    model = Company

Что мне здесь не хватает?Я посмотрел на другие вопросы стека, и я не могу понять это.

1 Ответ

0 голосов
/ 22 февраля 2019

Когда вы переопределяете атрибут класса Table, вы должны поместить его в качестве атрибута класса Table, а не в класс Meta.Итак, вам нужно определить таблицу следующим образом:

class CompanyTable(tables.Table):
    company_name = tables.LinkColumn('company_detail', args=[A('pk')])  # not in meta
    class Meta:
        model = Company
        attrs = {'class': 'mytable table table-striped table-bordered table-hover'}
        orderable = False  
...