Найти - Пользователи
Полная версия: Django-tables2 Не могу скрыть колонку
Начало » Django » Django-tables2 Не могу скрыть колонку
1
Notan1310
Доброго времени суток. У меня не получается скрыть колонку при рендеринге таблицы. Подскажите что не так делаю. Заголовки колонок нормально переопределяются.

view.py

def table(request):
    newTable = PersonTable
 
    newTable = SmsTel.objects.filter(user=request.user)
 
    for item in newTable:
        split = item.separator.separators
        rawstring = item.text.split(split)
        item.text = rawstring[0]
    return render(request, "profile/table.html", {"table": newTable })

tables.py
import django_tables2 as tables
from .models import SmsTel
from django.forms import ModelForm
 
class PersonTable(tables.Table):
 
    from_phone = tables.Column(verbose_name="from phone")
    to_phone = tables.Column(verbose_name="to phone")
    text = tables.Column(verbose_name="text")
    date = tables.Column(verbose_name="date")
    timestamp = tables.Column(verbose_name="timestamp")
    user = tables.Column(verbose_name="user")
    separator = tables.Column(verbose_name="separator")
 
    class Meta:
        model = SmsTel
        exclude = ('user',)

model.py

from django.db import models
from django.contrib.auth.models import User
import django_tables2 as tables
 
 
 
class SeparatorsUser(models.Model):
    separators = models.CharField(max_length=20, default=',')
    def __unicode__(self):
    return self.separators
 
 
class SmsTel(models.Model):
    from_phone = models.CharField(max_length=20)
    to_phone = models.CharField(max_length=20)
    text = models.CharField(max_length=20)
    date = models.DateTimeField(blank=False)
    timestamp = models.DateTimeField(blank=False, auto_now_add=True)
    separator = models.ForeignKey(SeparatorsUser)
    user = models.ForeignKey(User,)
 
   def __unicode__(self):
        return self.text

Спасибо!

botinag
Notan1310
...
    newTable = PersonTable
 
    newTable = SmsTel.objects.filter(user=request.user)
...
def table(request):
    newTable = PersonTable(SmsTel.objects.filter(user=request.user))
    RequestConfig(request).configure(newTable)
    return render(request, "profile/table.html", {"table": newTable })
а если так попробовать?
Notan1310
Спасибо. Так сработало, но стили таблицы исчезли. А вы знаете почему как описано в документаций не срабатывает?
botinag
Notan1310
А вы знаете почему как описано в документаций не срабатывает?
У Вас в этом куске кода идет переопределение переменной и в контекст попадает queryset, а не PersonTable:
...
    newTable = PersonTable
 
    newTable = SmsTel.objects.filter(user=request.user)
...
Чтобы добавить класс к таблице:
class PersonTable(tables.Table):
...
    class Meta:
        model = SmsTel
        exclude = ('user',)
        attrs = {"class": "YOUR_CLASS"}  # <-- добавляем класс к таблице
Ну а дальше описываем YOUR_CLASS в вашем файле с css и не забываем добавить его в шаблон “profile/table.html”.
У них же неплохой туториал по tables2.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB