Как включить информацию из запроса в linkify в Tables2 в Django - использование для заполнения отношения многие-ко-многим
У меня есть отношения "многие ко многим", и я настраиваю способ добавления нового отношения из детального представления модели1. Я настроил его таким образом, что у меня есть url mapped для создания отношения, заданного pk(model1)/url/pk(model2). Это просто функция, которая добавляет отношения "многие ко многим" и перенаправляет обратно в детальный вид модели1.
У меня это работает на основе функции, но я хотел бы иметь возможность отображать список доступных записей ModelB, используя Tables2, но я не могу понять, как добавить pk(model1) к linkify в таблице, поскольку таблица основана на model2, а это не является частью определения model2.
Возможно, существует совершенно другой способ решения этой проблемы, который является более эффективным? (много документации и учебников о создании и работе с отношениями "многие-ко-многим", но не смог найти ни одного примера выполнения этой части, кроме как в оболочке)
Вот что у меня есть:
models.py
class Dmsesite(models.Model):
...
class Job(models.Model):
dmsesite = models.ManyToManyField(Dmsesite)
...
urls.py
path('<int:pk>/add_job/', views.DmsesiteAddJob, name='dmsesite_add_job'),
path('<int:dmsesite_pk>/add_job_to_site/<int:job_pk>', views.DmsesiteAddJobToSite, name='dmsesite_add_job_to_site'),
views.py
class DmseSiteAddJobListView(PermissionRequiredMixin, SingleTableMixin, FilterView):
permission_required = 'dmsesites.view_dmsesite'
redirect_field_name = 'dashboard'
table_class = DmsesiteJobTable
filterset_class = JobFilter
model = Job
table_pagination = {"per_page": records_per_page}
template_name = 'dmsesites/dmsesite_add_job.html'
@login_required
@permission_required('dmsesites.add_job', raise_exception=True)
def DmsesiteAddJobToSite(request, dmsesite_pk, job_pk):
dmsesite = get_object_or_404(Dmsesite, pk=dmsesite_pk)
job = get_object_or_404(Job, pk=job_pk)
job.dmsesite.add(dmsesite)
response = redirect(reverse('dmsesite_detail', kwargs={'pk':dmsesite_pk}))
return response
tables.py
class DmsesiteJobTable(tables.Table):
num = tables.Column(linkify=("add_job_to_site", {I NEED TO ADD SOMETHING HERE FOR THE PK OF DMSESITE, "pk": tables.A('id')}))
class Meta:
model = Job
fields = ('num', 'desc', 'client', 'contact', 'note', 'state')
template_name = 'django_tables2/bootstrap.html'
Я думаю, что мне нужен способ передать pk dmsesite в таблицу, чтобы linkify мог добавить его в url.