Создавать объекты модели внутри Adminview другой модели

Я пытаюсь обобщить разрешения доступа к определенным узлам для каждой из моих групп. У меня есть модель Access Model с тремя различными полями: access_type, group и node. Каждая группа может иметь исходный, конечный или двунаправленный доступ к узлу, который имеет имя:

class Access(models.Model):
    
      
    class AccessType(models.TextChoices):
        BIDIRECTIONAL = "bi", "Bidirectional"
        SOURCE = "src", "Source"
        DESTINATION = "dst", "Destination" 

    
    access_type = models.CharField(max_length=3, choices=AccessType.choices)
    
    group  = models.ForeignKey(Group,on_delete=models.CASCADE, related_name='GroupAccess')
    node   = models.ForeignKey(DicomNode, on_delete=models.CASCADE)
    name = models.CharField(unique=True, max_length=128, null = True)

По аналогии с общим представлением разрешений в adminView я хочу создавать объекты Access в GroupView, чтобы они создавались с группой, в которой я нахожусь в данный момент. Также я хотел бы, чтобы они отображались слева со всеми доступными типами доступа и узлами, разделенными знаком '|', как и все доступные разрешения:

введите описание изображения здесь

Я уже сделал то же самое с формой для добавления существующих пользователей в группу:

class GroupForm(forms.ModelForm):
    users = forms.ModelMultipleChoiceField(
        label='Users',
        queryset=User.objects.all(),
        required=False,
        widget=admin.widgets.FilteredSelectMultiple(
            "users", is_stacked=False))

    class Meta:
        model = Group
        exclude = ()  # since Django 1.8 this is needed
        widgets = {
            'permissions': admin.widgets.FilteredSelectMultiple(
                "permissions", is_stacked=False),
        }


class MyGroupAdmin(GroupAdmin):
    form = GroupForm
    list_display = ["name", "pk"]
    def save_model(self, request, obj, form, change):
        # save first to obtain id
        super(GroupAdmin, self).save_model(request, obj, form, change)
        obj.user_set.clear()
        for user in form.cleaned_data['users']:
             obj.user_set.add(user)

    def get_form(self, request, obj=None, **kwargs):
        if obj:
            self.form.base_fields['users'].initial = [o.pk for o in obj.user_set.all()]
        else:
            self.form.base_fields['users'].initial = []
        return GroupForm

Итак, мой вопрос: как мне отобразить все возможные конфигурации доступа и затем создать этот объект с существующими узлами?

Я очень новичок в django и честно говоря не знаю с чего начать

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