Структура Django Excell

Мне нужно сделать webapp, который основан на excell. Должно быть два вида групп одна для пользователя, который может редактировать и просматривать данные и одна для персонала, который также может создавать данные для работы для пользователя.

Каждый из них имеет ограниченный просмотр, пользователь должен видеть только свои данные, в то время как сотрудники должны видеть все, что сделал каждый пользователь или изменил другой сотрудник.

Я не могу понять, что это за ограничения.

мой логин такой

class Einloggen(LoginView):
    template_name = 'SCHUK/Einloggen.html'
    fields ='__all__'
    redirect_authenticated_user = True

    def get_success_url(self):
        if self.request.user.groups.filter(name='Personalverwaltung').exists():
            return reverse('Dashboard')
        else:
            return reverse('Schulverzeichnis', args=[self.request.user.pk])

но когда дело доходит до отображения данных для персонала, тут я упираюсь в стену.

class Dashboard (LoginRequiredMixin, ListView):
    model = SchulverzeichnisTabelle
    template_name = 'SCHUK/Dashboard.html'
    context_object_name = 'Dashboard'


    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['Schulverzeichnis'] = SchulverzeichnisTabelle.objects.all()


        return context


пока я могу перечислить все с помощью иностранных ключей, данные, которые создает персонал, не перечисляются, потому что иностранный ключ показывает только одну запись

Когда я использую поле mtm, я получаю следующее в моем шаблоне

<QuerySet []>

Читая документацию и все остальное, вы не можете читать отдельные записи из mtm, только то, что mtm сохранил

Как я могу показать каждое отдельное поле из mtm или есть обходной путь для этого в момент, когда я использую это в модели

class Model(models.Model):
    stuff = models.Whatever(etc)
    def __str__(self):
        return '{}'.format (self.stuff)


и вызовите его в шаблоне таким образом

{{i.stuff_FK.all|join:', '}}

но редактирование и удаление - это беспорядок, а создание требует двух правок для персонала - одна для ввода материала, а другая - где материал должен появиться

Я имею в виду, что должно быть лучшее решение, чем это

Вернуться на верх