2016-02-17 2 views
0

Возможно ли получить id slug внутри get_form_class? Любой совет?Django querystring/slug внутри formclass

class Create(Merchant_Services_Editor_Mixin, CreateView): 
    template_name = 'secure/shared/editor.html' 

    def get_form_class(self): 

     if (self.request.GET.get("id") == 1): 
      return _Merchant_Services_Form.StripeEditor 
     else: 
      return _Merchant_Services_Form.BraintreeEditor 
+0

Что вы подразумеваете под словом «id slug»? Вы хотите «слизняк» или «идентификатор» или «идентификатор объекта с этим слипом» или «слизня объекта с этим идентификатором»? Каковы ваши параметры запроса, это slug или id? – Yeo

ответ

0

Вы можете передать слизняк идентификатора вашей формы с помощью get_form_kwargs:

class MyView(CreateView): 

    def get_form_kwargs(self, **kwargs): 
     kwargs = super(MyView, self).get_form_kwargs(**kwargs) 
     kwargs['id'] = self.request.GET.get('id') 
     return kwargs 

Тогда вам придется обновить свой класс формы, чтобы справиться с этим новым параметром. Вы можете получить его из kwargs:

class MyForm(forms.Form): 

    def __init__(self, *args, **kwargs): 
     self.id = kwargs.pop('id', None) 
     super(MyForm, self).__init__(*args, **kwargs) 
Смежные вопросы