2016-06-10 2 views
0

Я использую Django-tables2 для рендеринга таблицы с тегами формы, обернутыми вокруг таблицы, чтобы сохранить измененные данные порядка строк. Мне нужно, чтобы таблица отображала следующий скрытый ввод внутри тегов формы, чтобы моя форма сохраняла измененные данные.Как добавить скрытый ввод для поля ID внутри django-tables2?

<input type="hidden" name="id" value="{{ track.id }}"> 

решение работает, но в настоящее время он делает входные теги внутри тегов TD, что делает его показать столбец ID. Как скрыть столбец идентификатора, сохраняя при этом скрытые теги ввода?

<td class="id">20098<input type="hidden" name="track_id" value="20098" /></td> 

tables.py:

class TrackIDColumn(tables.Column): 

    def render(self, value): 
     return mark_safe(str(value) + '<input type="hidden" name="track_id" value="' + str(value) + '" />') 

class PlaylistTable(tables.Table): 

    id = TrackIDColumn() 

    class Meta: 
     model = Track 
     attrs = {"class": "paleblue"} 
     orderable = False 
     fields = ('id', 'artist', 'title',) 

шаблона:

<form method='POST' action='{% url "playlists:save_playlist" username=user.get_username slug=playlist.slug %}'>{% csrf_token %} 
{% render_table table "django_tables2/bootstrap.html" %} 
<button type="submit" name="playlist_id" value="{{ playlist.id }}" class="btn btn-primary">Save</button> 
</form> 

ответ

1

Вы не можете вынести в коснуться колонки без рендеринга столбца. Что вы можете сделать, это скрыть заголовок добавлением пустой verbose_name на колонке:

class PlaylistTable(tables.Table): 
    id = tables.Column(verbose_name='') 

    def render_id(self, value): 
     return format_html('<input type="hidden" name="track_id" value="{}" />', str(value)) 

Если вы совершенно не хотите дополнительный столбец быть оказаны, вы должны добавить скрытый тег ввода в другой столбец :

class PlaylistTable(tables.Table): 
    artist = tables.Column() 
    title = tables.Column() 

    def render_title(self, value, record): 
     return format_html('{} <input type="hidden" name="track_id" value="{}" />', value, record.id) 

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

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