Отключить компоненты get_initial в django - PullRequest
0 голосов
/ 19 февраля 2020

Я инициализирую некоторые поля в моих django формах, и они работают нормально, но они все еще доступны для редактирования. Как их отключить ??

Views.py

def get_initial(self):
    initial = super().get_initial()
    initial['sales_order'] = MaterialRequest.objects.get(pk=self.kwargs['pk'])  #disable this
    initial['parent_company'] = MaterialRequest.objects.filter(pk=self.kwargs['pk']).values_list('owner', flat=True)[0]  

    initial['product1'] = MaterialRequest.objects.filter(pk=self.kwargs['pk']).values_list('product1', flat=True)[0]
    initial['product2'] = MaterialRequest.objects.filter(pk=self.kwargs['pk']).values_list('product2', flat=True)[0]
    initial['product3'] = MaterialRequest.objects.filter(pk=self.kwargs['pk']).values_list('product3', flat=True)[0]
    initial['product4'] = MaterialRequest.objects.filter(pk=self.kwargs['pk']).values_list('product4', flat=True)[0]
    initial['product5'] = MaterialRequest.objects.filter(pk=self.kwargs['pk']).values_list('product5', flat=True)[0]
    initial['product6'] = MaterialRequest.objects.filter(pk=self.kwargs['pk']).values_list('product6', flat=True)[0]
    initial['product7'] = MaterialRequest.objects.filter(pk=self.kwargs['pk']).values_list('product7', flat=True)[0]
    initial['product8'] = MaterialRequest.objects.filter(pk=self.kwargs['pk']).values_list('product8', flat=True)[0]

Кроме того, есть ли более чистый способ переписать это?

...