我试图创建一个从Django的tables2列链接对象的“详细信息视图”。举例来说,我有医疗服务提供者的一列,我希望用户能够点击它,看看从搜索结果中的一个Django表健康服务提供者的具体信息。
目前,它不工作。我可以得到表上显示,但不能让它在那里他们可以点击详细信息页面。请帮忙。有一个与我的网址和我的观点有问题,所以我要包括tables.py,在views.py和urls.py.我试图linkify的联系是在价格模型的医院模式外键。
这是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"}
使用tables.LinkColumn
tables.LinkColumn("hospital_detail", kwargs={"pk": tables.A("pk")}, empty_values=())