Django / django-tables2 HTML-таблица в строке нажмите, чтобы редактировать форму - PullRequest
0 голосов
/ 16 сентября 2018

извините, этот пост может быть грязным, не знаю, как объяснить, что я ищу очень хорошо, но здесь ничего не говорится.

У меня есть приложение Django и я использую django-table2 для печати модели данных в таблицу, следующее, что я хочу сделать, это когда пользователь нажимает на строку таблицы, чтобы перенаправить страницу в эквивалентную форму редактирования

urls.py

path('', CustomerView.as_view(), name='customer'),
path('customer_edit/', views.customer_edit, name='customer_edit'),

tables.py

import django_tables2 as tables
from customer.models import Customer


class CustomerTable(tables.Table):
    account = tables.Column(attrs={'td': {'class': 'account'}})

    class Meta:
        model = Customer
        attrs = {'id': 'table'}
        exclude = ('is_deleted',)
        template_name = 'django_tables2/bootstrap-responsive.html'

Представленияперейдите на следующую страницу, чтобы начать редактирование записи

Я действительно думаю, что я лаю неправильное дерево с этим

, любая помощь будет очень признательна

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Хорошо, потратив на этот вечер этот вечер, я нашел способ выполнить это действие, не добавляя тег href в код python,

, используя Ajax, я могу получить код учетной записи из таблицы, а затемпередайте это через URL

$('table tbody tr').click(function () {
    let account = $(this).closest('tr').find('td.account').text();
    window.location = account;
});

, добавив первичный ключ в url.py

    path('<slug:account>/', views.customer_edit, name='customer_edit'),

и добавив def customer_edit в views.py

def customer_edit(request, account):
    customer = get_object_or_404(Customer, pk=account)
    if request.method == 'POST':
        form = CustomerEdit(request.POST, instance=customer)
        if form.is_valid():
            customer.save()
            return redirect(reverse('customer:customer'))

    else:
        form = CustomerEdit(instance=customer)
        args = {'customer': customer, 'form': form}
        return render(request, 'customer/customer_edit.html', args)

это наиболее оптимальный способ перенаправления на другой вид из Django без указания URL-адреса внутри файла python. Я на 100% уверен, что есть лучшие способы сделать это, но на данный момент это будет принятый ответ

0 голосов
/ 16 сентября 2018

Я думаю, что, возможно, нашел реализацию для вышеупомянутого.

Установка события щелчка для диалогового окна с таблицами Django2

это для удаления строки, но концепция та же

Я проверю и проверю

...