2

으로 표시합니다. 다른 데이터베이스에있는 다른 테이블을 참조하는 'messplatz'(DB-Id)라는 필드가있는 '이벤트'모델이 있습니다.장고 테이블 2 외래 모델을 장고에있는 LinkColumn

class Event(models.Model): 
    messplatz = models.Integerfield() 

내가 가진 문제 모델 이벤트의 표현된다 Djangos 외래 키 필드는 여러 데이터베이스 불가능하기 때문에, 필드 'messplatz은'참조 'Messplatz'의 PK-값을 저장, 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'을 원하는 (1). 또한, 나는 그것을 다른 관점 (2)과 연결되기를 원한다.

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) 나는 단서가 없다 위해 : 나는 tables.py에서 필드 'messplatz'에 대한 사용자 지정 렌더 방법을 정의하여 (1) achive 수 있습니다. 나는 정의를 변경하는 경우

def render_messplatz(self): 
    return '<a href="...">%s<a>' % Messplatz.objects.get(id=self.messplatz) 

링크-태그 내가 장고 테이블의 LinkColumn을 사용하면 장고 테이블 2로 일반 텍스트로 표시됩니다에 방법을 렌더링, 나는 때문에, 하나 (1) 달성 할 수 LinkColumn과 custom_render 메서드를 동시에 사용할 수는 없습니다.

아무도 아이디어가 있습니까? 미리 감사드립니다.

답변

0

어떻게 든 잘 되었어요. 그러나, 그것은 매우 나쁜 해결책이고 나는 다른 모든 아이디어에 감사 할 것입니다.

from prodis.models import Messplatz 

class Event(models.Model): 
    messplatz = models.IntegerField() 

    def get_messplatz(self): 
     return Messplatz.objects.get(mpl_id=self.messplatz) 

이 표시되지 않습니다

class EventTable(tables.Table): 
    #override messplatz-column 
    messplatz = tables.TemplateColumn('{% load url from future %}<a href="{% url \'messplatz_events\' record.messplatz %}">{{ record.get_messplatz }}</a>') 
    #Hint: {% load url from future %} is only needed for django versions < 1.5 

    class Meta: 
     model = Event 

record.get_messplatz에 액세스하려면, 나는 이벤트 모델에 get_messplatz 방법을 이동했다 :

나는 장고 - 테이블 2 템플릿 열을 사용 왜냐하면 나는 그것이 매우 나쁜 것이라고 생각하기 때문입니다. 그러나이 답변이 도움이되기를 바랍니다.