В настоящее время я создаю веб-портал для отслеживания информации о сотрудниках.Теперь я добавляю на эту систему заочное участие, чтобы регистрировать их и отслеживать баллы посещаемости, которые они получают.Модель «Заочное» связана с моделью «Сотрудник» следующим образом:
class Absentee(models.Model):
employee = models.ForeignKey(Employee, null=True, on_delete=models.CASCADE, related_name="absentee_employee")
date = models.DateField(null=False, blank=False)
reason = models.ForeignKey(Absence, null=True, on_delete=models.CASCADE, related_name="absentee_reason")
added_by = models.ForeignKey(Supervisor, null=True, on_delete=models.SET_NULL, related_name="absentee_supervisor")
comment = models.CharField(max_length=255, blank=True, null=True)
class Meta:
ordering = ('date', )
def __str__(self):
return f"{self.employee.CoreID} [{self.reason.points}] - {self.comment}"
Мне удалось показать отсутствующие в виде таблицы, когда вы переходите на страницу сведений об отдельном сотруднике, на которую ссылается модель «Сотрудник».На этой странице сведений о сотрудниках есть кнопка для добавления отсутствующего лица, которое вводится в форму для создания нового отсутствующего лица, ссылающегося на модель отсутствующего лица.Однако проблема заключается в том, что я не могу заполнить поле внешнего ключа «сотрудник» автоматически в зависимости от того, какого сотрудника просматривал пользователь перед тем, как его направили в форму.Есть ли способ заполнить это поле автоматически?Вот URL-адреса и представления:
urls.py:
path('employees/<int:pk>/', views.ManpowerDetailView.as_view(), name='manpower_detail'),
path('employees/<int:pk>/absentee/new/', views.AbsenteeCreateView.as_view(), name='absentee_new'),
views.py:
class ManpowerDetailView(GroupRequiredMixin, DetailView):
model = models.Employee
template_name = 'manpower/manpower_detail.html'
group_required = ['Supervisor', 'Manager', 'Admin']
class AbsenteeCreateView(GroupRequiredMixin, CreateView):
model = models.Absentee
template_name = 'manpower/absentee_new.html'
fields = ['employee', 'date', 'added_by', 'reason', 'comment', ]
group_required = ['Supervisor', 'Manager', 'Admin']
success_url = reverse_lazy('manpower_list')