Добавление в базу данных из другой базы данных с помощью кнопки в django
Я создаю веб-приложение, в котором много данных, отображаемых в таблицах. Я хотел создать платформу, где есть различные документы, и чтобы увидеть их, пользователь должен отправить запрос на доступ. То есть он просматривает доступные документы и запрашивает доступ, чтобы увидеть их детали. Теперь я столкнулся с проблемой, которую не могу решить.
Я хочу добавлять данные из одной таблицы в другую без формы. Только по нажатию кнопки в строке таблицы (это и есть "запрос на доступ"). Данные в этой строке будут добавлены в другую таблицу.
К сожалению, когда я нажимаю на кнопку, ничего не происходит. Я знаю, что, возможно, иду неправильным путем, но когда не возникает никаких проблем, страница перезагружается нормально, у меня нет никаких идей, как решить эту проблему.
Я создал модели:
class CourtFile(models.Model):
court = models.ForeignKey(Court, on_delete=models.CASCADE, null=True)
signature = models.CharField(max_length=200, null=True)
article = models.CharField(max_length=200, null=True)
contents_list = models.FileField(upload_to = "filepath", null=True)
def __str__(self):
return f'{self.court} - {self.signature}'
class AccessRequest(models.Model):
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
status = models.BooleanField(null=True)
signature = models.ForeignKey(CourtFile, on_delete=models.CASCADE, null=True)
def __str__(self):
return f'{self.signature}'
Я отображаю таблицу следующим образом:
<tbody>
{% for courtfile in courtfiles_list %}
<tr>
<td>{{courtfile.signature}}</td>
<td>{{courtfile.court}}</td>
<td>{{courtfile.article}}</td>
<td><a href="{% url 'podglad' courtfile.id %}" button class="btn btn-primary" type="button">Podgląd</a></td>
<form method="POST">
{% csrf_token %}
<td><a href="{% url 'access' courtfile.id %}" button class="btn btn-primary" type="submit">Uzyskaj dostęp</a></td>
</form>
</tr>
{% endfor %}
</tbody>
Данные отображаются на странице "start_u", после нажатия кнопки и добавления данных в другую базу данных, хотелось бы вернуться на страницу "start_u". И это мой views.py:
@login_required(login_url='login')
def startPage(request):
courtfiles_list = CourtFile.objects.all()
access_list = AccessRequest.objects.all()
context = {'courtfiles_list': courtfiles_list, 'access_list': access_list}
return render(request, 'users/start_u.html', context)
@login_required(login_url='login')
@allowed_users(allowed_roles=['user'])
def accessView(request, access_id):
access_request = CourtFile.objects.get(pk=access_id)
current_user = request.user
if request.method == 'POST':
entry = AccessRequest.objects.create(user=current_user, status=0, signature=access_request)
entry.save(force_insert=True)
return redirect('start_u')
urls.py:
path('start_u/', views.startPage, name="start_u"),
path('access/<access_id>', views.accessView, name="access"),