Это распространенный вопрос, но я какое-то время прочесывал SO и до сих пор не могу его решить.Я продолжаю получать эту ошибку, когда пытаюсь передать первичный ключ в представление модели через тег с другой страницы
Вот шаблон, который пытается отобразить гиперссылку.
<div class="main">
<table id = "results_table" class = "results_table">
{% if header %}
<tr>
{% for h in header %}
<th>{{h}}</th>
{% endfor %}
</tr>
{% endif %}
{% if values %}
{% for value in values %}
<tr>
{% for v in value %}
<td>{{v}}</td>
{% for items in archive %}
<a href = "{% url 'db:test' items.pk %}"> Modify </a>
{% endfor %}
{% endfor %}
</tr>
{% endfor %}
{% else %}
<p>No results.</p>
{% endif %}
</table>
Вот URL-адреса.py
from django.urls import path
from . import views
app_name = 'db'
urlpatterns = [
#path('', views.index, name='index'),
path('index/', views.index, name='index'),
path('search/', views.search, name='search'),
path('upload/', views.upload, name='upload'),
path('result/', views.search_result, name='result'),
path('test/<int:items>/', views.test, name='test'),
path('login/', views.login_user, name='login'),
path('upload/scanfile/', views.upload, name='scanfile'),
path('logout/', views.logout, name='logout'),
path('drag_n_drop_test/', views.drag_n_drop_test, name='drag_n_drop_test'),
]
path ('test //', views.test, name = 'test') - это строка, которую я пытался изменить
А вот представления.py
@login_required
def search_result(request):
primary_keys = []
if not request.user.has_perm('db.can_search'):
return render(request, 'db/index.html', {"message":"You do not have the permissions to perform this task!"})
search_type = str(request.GET['searchtype'])
query_value = str(request.GET['query'])
document_list = query_service.analyze_query_request(search_type, query_value, primary_keys)
#categories = {}
#metadata = {}
#store_service.string_split(document_list, categories, metadata)
header = ['archive_number', 'date_written', 'document_type', 'language']
values = query_service.get_values(document_list, header)
print(primary_keys)
#body = document_list
context = {'header': header, 'values': values, 'archive' : primary_keys}
return render(request, 'db/result.html', context)
def test(request, items):
template = loader.get_template('db/test.html')
document_object = Document.objects.filter(archive_number = items).first()
document_test_form = documentForm(instance = document_object)
person_test_form = personForm()
location_test_form = locationForm()
return render(request, 'db/test.html', {'document_test_form' : document_test_form, 'person_test_form': person_test_form , 'location_test_form' : location_test_form})
Вот что возвращает query_service.getValues
def get_values(document_list, header):
values = []
for document in document_list:
v = []
for element in header:
v.append(document[element])
values.append(v)
return values