Python Django Admin создает новый объект и фильтрует горизонтальные элементы фильтра - PullRequest
0 голосов
/ 28 октября 2019

Я бы хотел создать собственный горизонтальный фильтр внутри администратора Django. Мой вариант использования выглядит следующим образом. Я работаю над инструментом Testmanagment. Вы получили "Проекты", такие как websiteA или WebsiteB. Каждый проект имеет свои элементы / группы. Например, у WebsiteA есть «Dashboard» и «Login», а у WebsiteB есть «Users» и «Orders».

Если я создаю новый Testcase, я хотел бы сначала выбрать проект и предложить отфильтрованный список всем соответствующимЭлементы для этого проекта.

Я не хочу получать все элементы / группы для нового Testcase.

Мой код выглядит примерно так:

Forms.py:

class TestCaseForm(forms.ModelForm):

@staticmethod
def groupSmartFilter():
    return GroupModel.objects.filter(id=2) #working fine so far
    but should be something like
    return Projects.objects.filter(projectname=<$project_from_dropdown>).groups()

def __init__(self, *args, **kwargs):
    forms.ModelForm.__init__(self, *args, **kwargs)
    self.fields['groups'].queryset = TestCaseForm.groupSmartFilter()



class Meta:
    model = TestCaseModel
    fields = ('name', 'TestcaseNummer', 'project','groups', 'description' , 'url' )

admin.py

class TestCaseAdmin(CompareVersionAdmin):
form = TestCaseForm
filter_horizontal = ('groups',)
...