очень простая загрузка файла Django, не работающая :-((

Вы должны объединить несколько операторов в pipe. Используйте switchMap (или даже mergeMap), чтобы отобразить выходные данные вашего магазина в Observable из запроса Http, а затем выполнять свои другие задачи, каждый в своем собственном операторе. Таким образом вы получите намного более чистый код.

Это должно выглядеть примерно так:

updateSettings({ settings }) {
  return this.store.select(s => s.settings)
    .pipe(
      // map the state from your store to the http request
      switchMap((state: any) => this.http.put('route/' + state.data.id, { settings })),
      // map the http response to the data your care about
      map((response: any) => response.data),
      // execute any other task with that data
      tap(data => this.store.dispatch(new GetSettingsSuccess({ data }))),
      // catch errors if they occurr
      catchError(this.errorHandlerService.handleError),   
    );

Затем вы подписываетесь на возвращаемую Observable, и ваш http-запрос будет выполнен после того, как значение из хранилища будет отправлено.

this.settingService.updateSettings({ settings }).subscribe(
  // you'll have access to your data from the http response here
  data => doSomething(data) 
);
5
задан 13 February 2009 в 21:19
поделиться

1 ответ

Попытайтесь измениться"if 'uploaded' in request.FILES:"к"if request.FILES".

Вы могли бы хотеть смотреть на документацию также; существует пример - http://docs.djangoproject.com/en/dev/topics/http/file-uploads/

6
ответ дан 14 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: