在 Django 中,我有一个模型“事件”,它有一个名为“messplatz”(DB-Id)的字段,它引用位于不同数据库上的另一个表。由于 Django 的 foreignKey-field 不能用于多个数据库,因此字段 'messplatz' 是一个 Integerfield,存储引用的 'Messplatz' 的 PK 值:
class Event(models.Model):
messplatz = models.Integerfield()
我遇到的问题是使用 django-tables 2 表示模型事件:
模型“Messplatz”在“prodis”应用程序中定义,该应用程序路由到不同的数据库。我的观点如下:
def eventList(request):
table = EventTable(Event.objects.all())
RequestConfig(request).configure(table)
return render(request, 'mkv/eventList.html', {'table': table})
在视图中,我希望“Messplatz”字段显示实际 Messplatz-Object (1) 的名称。此外,我希望它成为另一个视图 (2) 的链接。我可以通过在 tables.py 中为字段“messplatz”定义自定义渲染方法来实现(1):
from prodis.models import Messplatz
class EventTable(tables.Table):
class Meta:
model = Event
def render_messplatz(self):
return '%s' % Messplatz.objects.get(id=self.messplatz)
但是对于(2)我不知道。如果我将自定义渲染方法更改为
def render_messplatz(self):
return '<a href="...">%s<a>' % Messplatz.objects.get(id=self.messplatz)
链接标签由 django-tables 显示为纯文本 2. 当我使用 django-tables 的 LinkColumn 时,我也无法实现(1),因为您不能同时使用 LinkColumn 和 custom_render 方法。
有人有想法吗?提前致谢