В настоящее время я использую django -tables2 для отображения некоторых результатов пользователям. Результаты получены из графика RDF, поэтому результаты и количество столбцов могут отличаться. Я написал следующий код для работы с переменной длиной столбцов таблицы:
def createData(queryResults):
if not queryResults:
return (DummyTable,[])
else:
myTableCol={}
mylist = []
for i in queryResults:
mydic = {}
for j in i:
className=str(type(j)).split(".")[1]
mydic.update({className: j.name})
myTableCol.update({className: tables.Column()})
mylist.append(mydic)
myTableCol.update({'Action': tables.TemplateColumn(template_name="secReqViews/radionbuttons.html", verbose_name=("Actions"), orderable=True)})
Meta = type('Meta', (object,), {'template_name':"django_tables2/bootstrap4.html", 'attrs':{"class": "paleblue"},})
myTableCol.update({'Meta':Meta})
QueryTable2=type('QueryTable', (tables.Table,), myTableCol)
return QueryTable2, mylist
Не останавливаться на алгоритме, но вы можете видеть, что я динамически создавал столбцы таблицы, используя myTableCol = {} и динамически создаваемый класс QueryTable2. Я добавил столбец «Действия», на котором я сфокусирован в этом сообщении.
Я хотел бы использовать этот столбец для асинхронной информации от пользователей. Таким образом, для результатов в таблице пользователь может выбрать переключатель «Да» или «Нет», чтобы сказать, является ли строка результатов правильной или нет. При выборе переключателя «Да» или «Нет» информация из строки будет отправлена, а затем сохранена строка, которая является правильной или нет. Можно ли это сделать с помощью Django -tables2?
Сценарий, который я хотел бы, чтобы таблица загружалась со столбцом действия.
<!DOCTYPE html>
<html>
<body>
<h2>Basic HTML Table</h2>
<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Action</th>
</tr>
<tr>
<td>Jill</td>
<td>Smith</td>
<td><form>
<input type="radio" id="Yes" name="result" value="Yes">
<label for="Yes">Yes</label>
<input type="radio" id="No" name="result" value="No">
<label for="No">No</label>
</form></td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td><form>
<input type="radio" id="Yes" name="result" value="Yes">
<label for="Yes">Yes</label>
<input type="radio" id="No" name="result" value="No">
<label for="No">No</label>
</form></td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td><form>
<input type="radio" id="Yes" name="result" value="Yes">
<label for="Yes">Yes</label>
<input type="radio" id="No" name="result" value="No">
<label for="No">No</label>
</form></td>
</tr>
</table>
</body>
</html>
Я читал в django -datatables-view, но для него требуется модель, а мои данные не поступают из базы данных.