Я пытаюсь удалить конкретный столбец данных.Моя проблема заключается в том, как я могу вызвать функцию из шаблона и повторно отобразить тот же шаблон после удаления столбца.
Я попытался создать функцию для обработки удаления столбца с представлением, но не смогв состоянии выяснить, как на самом деле выполнить функцию.После выполнения функции шаблон следует обновить, чтобы отразить обновленную страницу ...
Это мой шаблон, в котором столбцы выбраны для удаления (preprocess.html):
<tbody>
{% for key in n_cols %}
<tr>
<td>{{ key }}</td>
<td align="right">{% get_key_count df key %}</td>
<td align="right">{% get_missing df key %}</td>
<td align="right">{% get_missing_rows_percent df key %}</td>
<td class="text-center">
<a href="#" class="btn btn-info btn-sm">
<i class="fas fa fa-pencil fa-cog"></i>
</a>
</td>
<td align="right" class="text-center">
<a href="{% delRowsMissingView project.id df key %}"
class="btn btn-warning btn-sm">
<i class="fas fa-trash fa-cog"></i>
</a>
</td>
<td class="text-center">
<a href="#" data-q_id="{{ key }}"
class="btn btn-danger btn-sm"
data-toggle="modal"
data-target="#delMissingColModal">
<i class="fas fa-trash fa-cog"></i>
</a>
</td>
</tr>
Здесьпредставление, облегчающее рендеринг шаблона:
class PreprocessView(DetailView):
model = Project
context_object_name = 'projects'
template_name = 'projects/preprocess/preprocess.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
project = self.get_object()
try:
df = pd.read_csv(project.base_file)
except: pass
context['project'] = project
context['df'] = df
context['n_cols'] = df.keys
return context
def drop_row(df, key):
df[key].dropna()
Базовая модель:
class ProjectFile(models.Model):
FILE_TYPE = (
('base', 'Base File'),
('transformed', 'Transformed File'),
('discretized', 'Discretized File'),
('model', 'Model File')
)
file = models.FileField(upload_to='project-files', default=True)
category = models.CharField(max_length = 50, default = 'base', choices = FILE_TYPE)
description = models.TextField(default = 'base file')
project = models.ForeignKey(Project, on_delete=models.CASCADE)
def __str__(self):
return self.description
def get_absolute_url(self):
return reverse('project-detail', kwargs = {'pk': self.project.pk})