Как получить linkify, чтобы перейти к подробному виду из таблицы django? - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь создать ссылку из столбца django-tables2 на «подробный вид» объекта.Например, у меня есть столбец поставщиков медицинских услуг, и я хочу, чтобы пользователь мог щелкнуть по нему и просмотреть конкретную информацию для поставщика медицинских услуг из таблицы результатов поиска django.

В настоящее время это не работает.Я могу получить таблицу, чтобы показать, но не могу получить ее, где они могут нажать на страницу сведений.Пожалуйста помоги.Существует проблема с моими URL и моими представлениями, поэтому я собираюсь включить таблицы.py, views.py и urls.py.Ссылка, которую я пытаюсь связать, является внешним ключом для модели больницы в модели цены.

Это urls.py.Это под url_patterns.

  path('hospital_detail/(?P<pk>\d+)/$', views.HospitalDetailView.as_view(), name='hospital-detail')

Это views.py.

from django.template import RequestContext, get_object_or_404, render
from django.views.generic.detail import DetailView
from catalog.models import Price, Hospital, Service
from django_tables2 import RequestConfig
from catalog.tables import PriceTable

class HospitalDetailView(generic.DetailView):
    model = Hospital

def hospital_detail_view(request, primary_key):
    hop = get_object_or_404(Hospital,  pk=primary_key)
      return render(request, 'hospital_detail.html', {'hospital': hop})

def results(request):
    if request.method == "GET":
      Q=()
      out_words = request.GET.get('s')
      context = RequestContext(request)
      table = PriceTable(Price.objects.filter(service__desc_us__icontains = out_words))
      RequestConfig(request).configure(table)
    else:
      table = PriceTable(Price.objects.all())
      RequestConfig(request).configure(table)

    return render(request, 'results.html', {'table': table})

Это tables.py.Больница - это внешний ключ в таблице цен.

import django_tables2 as tables
from catalog.models import Service, Hospital, Price
from django_tables2.utils import A

class PriceTable(tables.Table):
    hospital = tables.LinkColumn('hospital-detail', args=[A('pk')])

    class Meta:
        model = Price
        template_name = 'django_tables2/bootstrap.html'
        sequence = ('hospital', 'service', 'price_offer', 'pub_date')
        exclude = ('id', 'published')
        attrs = {"class": "paleblue"}

1 Ответ

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

Использование tables.LinkColumn

tables.LinkColumn("hospital_detail", kwargs={"pk": tables.A("pk")}, empty_values=())
...