2015-04-17 2 views
0

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

Date (timezone: US/Pacific) | value 
2015-Apr-05    | 10 
2015-May-03    | 20 

Мои модели:

class Event(models.Model): 
    date = models.DateTimeField() 
    value = models.IntegerField() 
    user_profile = models.ForeignKey('UserProfile') 

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    timezone = models.CharField() 

Мой стол:

class EventTable(tables.Table): 
    class Meta: 
    model = models.Event 
    fields = ('date', 'value') 

И мое мнение:

class SubscriberActivityView(View): 
    def get(self, request): 
    user_profile = UserProfile.objects.get(user=request.user) 
    events = user_profile.event_set.all() 
    context = { 
     'event_table': EventTable(list(events)) 
    } 
    # etc.. 

Как передать информацию часового пояса UserProfile в таблицу?

ответ

1

Вы можете попробовать так:

Таблица Класс:

class EventTable(tables.Table): 
    def __init__(self, *args, date_verbose_name="",**kwargs): 
     super().__init__(*args, **kwargs) 
     self.base_columns['date'].verbose_name = date_verbose_name 
    class Meta: 
     model = models.Event 
     fields = ('date', 'value') 

Вид:

class SubscriberActivityView(View): 
    def get(self, request): 
    user_profile = UserProfile.objects.get(user=request.user) 
    date_verbose_name = user_profile.timezone 
    events = user_profile.event_set.all() 
    context = { 
     'event_table': EventTable(list(events), date_verbose_name=date_verbose_name) 
    } 
+0

Я получаю 'SyntaxError' с этой линии: определение функции __init __ (я, * args, date_verbose_name = "", ** kwargs): 'Но этот ответ поставил меня на правильный путь, [вот что я сделал в конце] (https://gist.github.com/yosemitebandit/e168672cb1a0adcc7391). – Matt

+0

ну, я протестировал его на своей машине, и он отлично работал, возможно, потому, что я использовал python 3. Рад видеть ответ, который вам помог. – ruddra

+1

А, я должен был упомянуть, что я на python 2.7 и Django 1.5. Еще раз спасибо. – Matt

 Смежные вопросы

  • Нет связанных вопросов^_^