이거 가장 기본인데, 저장은 되는데 내가 그 값을 보고 쓸 수는 없다니, 말도 안된다.
쓰기만 하면 내부적으로 막 돌아가서 자동 저장되는 것처럼 보이니깐 막상 어떤 값을 뽑아 쓰려면 참나...
암튼 저장되는 객체의 필드를 참고하고 싶었는데 어떻게 참고해야 하는지 몰랐다.
self.form_class.xxxx
self.instance.xxxx
self.form_class.instance.xxxx
다 실패, 정답은
self.object.xxxx
@method_decorator(admin_required, name="dispatch")
class PartsUpdateView(BSModalUpdateView):
model = Parts
filter = ""
template_name = "devices/_modal_update.html"
form_class = PartsUpdateForm
success_message = "Parts saved."
success_url = reverse_lazy("devices:parts_list")
# def get_success_url(self):
# return self.request.META["HTTP_REFERER"]
def get_context_data(self, **kwargs):
context = super(PartsUpdateView, self).get_context_data(**kwargs)
print("get_context_data", context)
if self.request.POST:
print(self.request.POST)
return context
def form_valid(self, form):
print("form_valid")
# if not self.request.is_ajax():
if self.request.POST.get("querystring"):
self.filter = "?" + self.request.POST.get("querystring")
response = super().form_valid(form)
return response
def get_success_url(self):
print("get_success_url", self.object.name)
self.success_message = "Parts '" + self.object.name + "' saved."
return reverse_lazy("devices:parts_list") + self.filter
코드를 참고하기 바란다.
성공했을때 이름을 넣고 싶어서 찾아 본건데, 이 쉬운걸 말이다.
참고사이트
https://velog.io/@hyeseong-dev/django-getsuccessurl
쩝.
Iakub Arifulin 님의 사진, 출처: Pexels