как передать выбранную строку таблицы с помощью флажка в html n передать данные в views.py django - PullRequest
0 голосов
/ 14 марта 2012

m новичок в python-django нужна помощь ... я хочу передать выбранную строку таблицы из шаблона в views.py с установленным флажком, используя метод post..и могу выбрать несколько строк ... n после отправки строки с помощьюМетод POST для views.py выбранная строка должна исчезнуть из шаблона

template:a.html 
<tr > {% if getlog %}
<form action="{% url list %}" method="post">{% csrf_token %}
<td><input type="checkbox" id="check_all" checked="checked"/></td>          
<thead><th COLSPAN="2">App Name</th>
    <th COLSPAN="2">File Name</th>
    <th COLSPAN="2">Function Name</th>
    <th COLSPAN="2">Path Name</th>
    <th COLSPAN="2">Line No</th>
    <th COLSPAN="2">Level Name</th>
    <th COLSPAN="2">Message</th>
    <th COLSPAN="2">Thread Name</th>
</tr>                                                                
</thead>
{% for log in loglist %}
<tr id="tr1">
<td><input type="checkbox" class="check_field" checked="checked" name="list1"/> </td>
   <td colspan="2" > {{ log.app.appname }} </td>
   <td colspan="2"> {{ log.filename }}</td>
   <td colspan="2" >{{ log.funcname }}</td>
   <td colspan="2" >{{ log.pathname }}</td>
   <td colspan="2" >{{ log.lineno }}</td>
   <td colspan="2" >{{ log.typeid.levelname }}</td>
   <td colspan="2" >{{ log.typeid.message }}</td>
   <td colspan="2">{{ log.threadName }}</td>
</tr>
{% endfor %}      
</tbody>
</table>

как это сделать ??? где я иду не так?спасибо ...:)

1 Ответ

0 голосов
/ 14 марта 2012

Вы, вероятно, ошибаетесь, используя способ обработки данных, отличный от Django.

Сила Django заключается в очень надежной системе форм, которая может генерировать формы для вас, а также справляться с такими общими задачами, каксохранение записей в базе данных, проверка формы и т. д.

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

Ваш особый случай, так что простой набор форм или ModelForm на самом деле не сработают.вот имплементация, которую я бы порекомендовал.

models.py

class Log(models.Model):
    # whatever fields you want
    date_hidden = models.DateTimeField(null=True, blank=True)

forms.py

class LogDisplayForm(forms.Form):
    logs_to_hide = forms.ModelChoiceField(required=False, queryset=Log.objects.exclude(date_hidden__isnull=False)

    def save(self, *args, **kwargs):
        if self.cleaned_data.get('logs_to_hide'):
            Log.object.filter(pk__in=self.cleaned_data['logs_to_hide']).update(date_hidden=datetime.datetime.now())

Затем в форме шаблона просто переименуйте list1 в logs_to_hide и убедитесь, что значение поля является первичным ключом записи журнала.Это предполагает, что вы прочитали о том, как на самом деле работает Django, и знаете, как вы будете обрабатывать проверку формы и сохранение формы в представлении.

Обратите внимание, что приведенный мною код неполон и не будет работать без значительногодополнительная работа с вашей стороны. Что является точкой .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...