В моем проекте 'django' мне нужно извлечь / вставить данные из нескольких таблиц моей базы данных (mysql). Однако из-за кода, который я использовал, мне приходилось использовать дополнительную страницу .html для каждой операции с таблицей. Я хочу иметь возможность доступа к нескольким таблицам на одной HTML-странице. Чтобы лучше объяснить ситуацию, я пишу соответствующие коды проекта ниже.
Project / views.py
def home_view(request, *args, **kwargs):
print(args, kwargs)
print(request.user)
return render(request, "home.html", {})
@login_required()
def admin_view(request, *args, **kwargs):
print(args, kwargs)
print(request.user)
return render(request, "adminPage.html", {})
@login_required()
def doctor_view(request):
return render(request, 'doctorPage.html', {'doctors': doctor_view()})
встреч / просмотров.py
from django.views.generic import DetailView, ListView
class list_of_appointments(ListView):
model = Appointment
template_name = 'appointments/appointment_list.html'
class list_of_patients(ListView):
model = Patient
template_name = 'appointments/patient_list.html'
назначений / urls.py
urlpatterns=[
url(r'^appointment_list/$', list_of_appointments.as_view(), name='list1'),
url(r'^patient_list/$', list_of_patients.as_view(), name='list2')
]
Итак, чтобы получить доступ к операциям, связанным с таблицами, мне нужноиспользуйте следующий URL-код.
<a href={% url 'appointments:list2' %}>
Поэтому я могу создать второй HTML-файл и извлечь данные, которые я хочу извлечь из базы данных, с помощью этого метода.
{% for appointment in object_list %}
<tr>
<td>{{ appointment.patient.name }}</td>
<td>{{ appointment.doctor.name }}</td>
<td>{{ appointment.Date }}</td>
<td>{{ appointment.time }}</td>
<td>{{ appointment.province }}</td>
<td><a href="#">
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>Edit
</button>
</a></td>
</tr>
{% endfor %}
Но я хочу сделать это взаимодействие с базой данных на существующей HTML-ссылке (например, adminPage), не переходя на другую ссылку. Нигде не могу узнать, как это сделать, можешь мне помочь? Спасибо всем!