Как удалить столбцы данных после нажатия на ссылку? - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь удалить конкретный столбец данных.Моя проблема заключается в том, как я могу вызвать функцию из шаблона и повторно отобразить тот же шаблон после удаления столбца.

Я попытался создать функцию для обработки удаления столбца с представлением, но не смогв состоянии выяснить, как на самом деле выполнить функцию.После выполнения функции шаблон следует обновить, чтобы отразить обновленную страницу ...

Это мой шаблон, в котором столбцы выбраны для удаления (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})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...