Я застрял на этом некоторое время. Мне нужно извлечь текущее доменное имя арендатора, чтобы использовать его в качестве параметра для загрузки данных в этой схеме арендатора.
Я изо всех сил пытаюсь сделать эту работу из-за структуры моего взгляда. Это то, что я смог сделать до сих пор
forms.py
class ETL(forms.Form):
Historical = forms.FileField()
Pre_processing = forms.FileField()
Supplier = forms.FileField()
parameters = forms.FileField()
def process_data(self, request ,*args, **kwargs):
url = request.get_full_path()
print(url)
dbschema = remove_www(request.get_host().split(':')[0]).lower()
print(url)
fh = io.TextIOWrapper(self.cleaned_data['Historical'].file)
fpp = io.TextIOWrapper(self.cleaned_data['Pre_processing'].file)
fs = io.TextIOWrapper(self.cleaned_data['Supplier'].file)
fp = io.TextIOWrapper(self.cleaned_data['parameters'].file)
........
и мой view.py
@method_decorator(login_required, name='dispatch')
class Getfiles(LoginRequiredMixin,FormView):
template_name = 'upload.html'
form_class = ETL
success_url = 'Home'
def form_valid(self, form):
form.process_data()
print('data_processed well')
return super().form_valid(form)
с этим форматом представления. борется за то, как передать request.get_hosts () внутри представления. Как я могу это исправить?
Это правильный способ получить имя схемы или есть лучший способ получить схему арендатора в форме?
ОБНОВЛЕНИЕ:
Мне удалось изменить свой вид, без ошибок, и он перенаправил на нужную страницу, но не обработал мои данные.
@method_decorator(login_required, name='dispatch')
class Getfiles(LoginRequiredMixin,FormView):
template_name = 'upload.html'
form_class = ETL
success_url = 'Home'
def gooView(request, form):
if form.is_valid():
url = request.get_full_path()
form.process_data()
#redirect = 'Home'
#return HttpResponseRedirect(redirect)
return super().form_valid(form)
else:
form = ETL()
context = {
'form': form
}
return render(request, 'upload.html', context)