Explore my side projects and work using this link

Upsidedown is a WordPress theme design that brings blog posts rising above inverted header and footer components.

bird's eye view photography of trees and body of water
Advertisements

가끔 초기화 할때, 내가 원하는 변수 값을 넘기고 싶을때 kwargs 에 넣어줘서 넘겨줄 수 있다.

코드를 일단 보자

class ProductUpdateView(BSModalUpdateView):
    model = Product
    template_name = "_modal_update.html"
    form_class = ProductUpdateForm
    success_message = "변경완료"
    # success_url = reverse_lazy('orderitem_list')
    def get_success_url(self):
        return self.request.META["HTTP_REFERER"]

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        print("===여기 들어옴 ProductUpdateView ===", args, kwargs)

    def get_form_kwargs(self):
        kwargs = super().get_form_kwargs()
        kwargs["request"] = self.request
        return kwargs

일단, get_form_kwargs(self) 함수가 있다는 사실이 중요하다.

여기에서 기본 값들을 받고, 사용자 변수를 추가하고 리턴해주면 사용자 값이 추가된 kwargs 를 넘길 수 있다.

사용되는 부부은 이런 곳이다.


class ProductUpdateForm(BSModalModelForm):
    title = ""

    class Meta:
        model = Product
        fields = ["company", "name"]

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # print("=== ProductUpdateForm ===", args, kwargs, kwargs["request"])

__init__() 함수가 불려질때 넘어오게 되는 kwargs 에 내가 추가한 변수가 떡하니 들어 있다.

유용하게 활용하자.

bird's eye view photography of trees and body of water

참고페이지

https://ggodong.tistory.com/209 – Get, Post 요청을 모두 알아서 처리하는 FormView !

https://stackoverflow.com/questions/18605008/curious-about-get-form-kwargs-in-formview

Advertisements