Django: автоматически заполняет поле формы внешнего ключа из другой модели - PullRequest
0 голосов
/ 01 октября 2018

В настоящее время я создаю веб-портал для отслеживания информации о сотрудниках.Теперь я добавляю на эту систему заочное участие, чтобы регистрировать их и отслеживать баллы посещаемости, которые они получают.Модель «Заочное» связана с моделью «Сотрудник» следующим образом:

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')
...