У меня есть выпускники моделей, выпускной и выпускной проект
class Alumni(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return str(self.user)
class Graduation(models.Model):
faculty = models.CharField(max_length=120)
degree = models.CharField(max_length=120)
yearOfGraduation = models.CharField(max_length=120)
groupNumber = models.CharField(max_length=120)
alumni = models.ForeignKey(Alumni, on_delete=models.CASCADE, related_name='graduation')
def __str__(self):
return str(self.faculty)
class GraduationProject(models.Model):
title = models.CharField(max_length=120)
description = models.TextField()
mark = models.IntegerField(blank=True, null=True)
gitLink = models.CharField(max_length=120)
graduation = models.OneToOneField(
Graduation,
on_delete=models.CASCADE,
primary_key=True, related_name='projects')
def __str__(self):
return str(self.title)
, и я сделал вид обновления и вид удаления выпускного и выпускного проекта
class GraduationUpdateView(UpdateView):
model = Graduation
template_name = "graduation_edit.html"
fields = '__all__'
class GraduationDeleteView(DeleteView):
model = Graduation
template_name = "graduation_delete.html"
success_url = reverse_lazy('AlumniList')
class GraduationProjectUpdateView(UpdateView):
model = GraduationProject
template_name = "graduation_project_edit.html"
fields = '__all__'
class GraduationProjectDeleteView(DeleteView):
model = GraduationProject
template_name = "graduation_project_delete.html"
context_object_name = "project"
success_url = reverse_lazy('AlumniList')
и в моем URL-адреса я написал их таким образом
path('/<int:pk>/graduation/edit/', GraduationUpdateView.as_view(), name='editGraduation'),
path('/<int:pk>/graduation/delete/', GraduationDeleteView.as_view(), name='deleteGraduation'),
path('/<int:pk>/graduation/project/edit', GraduationProjectUpdateView.as_view(),
name='editProjGraduation'),
path('/<int:pk>/graduation/project/delete', GraduationDeleteView.as_view(),
name='deleteProjGraduation'),
и в моих шаблонах, когда я передаю идентификатор пользователя, я не знаю, как передать также идентификатор указанного c проекта и указанного c окончание, он удаляет весь выпускной вместо дипломного проекта, вот как я его написал
<a href="{% url 'editGraduation' pk=graduation.pk %}" class="btn btn-primary">Edit Graduatopn</a>
<a href="{% url 'deleteGraduation' pk=graduation.pk %}" class="btn btn-primary">Delete Graduation</a>
<a href="{% url 'editProjGraduation' pk=graduation.pk %}" class="btn btn-primary">Edit project</a>
<a href="{% url 'deleteProjGraduation' pk=graduation.pk %}" class="btn btn-primary">Delete project</a>
все они находятся в подробном представлении выпускников, поэтому я использую для l oop для доступа все в объекте и он работает, но я не знаю, как передать также правильный идентификатор объекта, а не только пользователя, а также как сделать правильный get_absolute_url, чтобы получить правильный URL-адрес после создания нового выпуска или проекта