У меня есть следующая модель:
class Sccinfo(models.Model):
primary_key = models.IntegerField(primary_key=True)
chip_kind = models.CharField(max_length=20, blank=True, null=True)
project_code = models.ForeignKey(Projects, models.DO_NOTHING, db_column='project_code')
board_type = models.CharField(max_length=9)
period = models.CharField(max_length=5)
scc_image = models.CharField(max_length=8, blank=True, null=True)
scc_platform = models.ForeignKey(Platforms, models.DO_NOTHING, db_column='scc_platform')
minor = models.CharField(max_length=4, blank=True, null=True)
label = models.CharField(max_length=15)
atr = models.CharField(db_column='ATR', max_length=66) # Field name made lowercase.
scc_interface = models.CharField(max_length=15, blank=True, null=True)
anti_reqiuered = models.IntegerField()
lockable = models.IntegerField()
mse_file = models.CharField(max_length=15, blank=True, null=True)
notes = models.TextField(blank=True, null=True)
class Meta:
managed = True
db_table = 'sccinfo'
Я использую таблицу django для добавления манипуляций со столбцами:
class SccinfoTable(tables.Table):
scc_platform=tables.Column(attrs={'td': {"contenteditable": "false"}})
selection = tables.CheckBoxColumn(accessor='pk', orderable=False)
def render_board_type(self, value):
return get_template_values(GEN,value)
def render_project_code(self,value):
return get_template_values(Projects.objects.all(),value)
class Meta:
model = Sccinfo
template_name = "django_tables2/bootstrap-responsive.html"
# exclude = ('id',)
# order_with_respect_to = 'project_name'
attrs = { 'style':'max-width:100%; white-space:nowrap;','td': {"contenteditable" : "true"},'th':{'style':'width:auto !important'}}
sequence = ('selection','...')
вид:
class SccInfoView (SingleTableView):
model = Sccinfo
template_name = "sccinfo.html"
def get(self, request, *args, **kwargs):
# self.data_info=Sccinfo.objects.all()
table = SccinfoTable(Sccinfo.objects.all())
return render(request,self.template_name, {'table': table})
def post(self, request, *args, **kwargs):
table = SccinfoTable(request.POST)
# for row in table.rows://???
HTML:
{% extends 'base.html' %}
{% load django_tables2 %}
{% block pagecontent %}
<form id="form" action="/" method="post">
{% csrf_token %}
<div>
<h3>SCC Info Table</h3>
<table>
{% render_table table %}
</table>
</div>
<input type="submit" value="Save" id="save" class="btn" formmethod="post" />
</form>
{% endblock %}
Я хочу иметь возможность получить таблицу (по запросу) и сохранить выбранные строки в базе данных. Я пытался получить объект Queryset из таблицы или, по крайней мере, получить значения ячеек, но не смог их получить. Как я могу это сделать?
Заранее спасибо!