Использование ViewModels в ObservableCollections в Prism

Вы пытаетесь загрузить файл с помощью метода HTTP POST, я не думаю, что это хороший способ. Попробуйте HTTP GET для загрузки. Если вы хотите предоставить дополнительные аргументы (полезная нагрузка в методе POST), вы можете сделать это, используя Query Parameter как /api/end/point/?param=value1&param2=value2. Итак, попробуйте следующий фрагмент,

@api_view(['GET'])
def download_file(request):
    if request.method == 'GET':
        filename = 'file.xlsx'
        file_full_path = "src/{0}".format(filename)

        with open(file_full_path, 'rb') as f:
            file = f.read()
        response = HttpResponse(file, content_type="application/xls")
        response['Content-Disposition'] = "attachment; filename={0}".format(filename)
        response['Content-Length'] = os.path.getsize(file_full_path)
        return response
    return Response(status=status.HTTP_400_BAD_REQUEST)
-1
задан Christoph Mett 19 January 2019 в 16:27
поделиться

1 ответ

Ваш PickListViewModel должен предоставить свойство коллекции, элементы которого имеют тип PickLineViewModel (, а не PickLine).

Требуется ли вам ObservableCollection<PickLineViewModel>, зависит от того, где могут произойти изменения - в сервисе / модели, которые изначально создали PickLine, или в GUI, или в обоих. В любом случае вы должны убедиться, что изменения распространяются с одной стороны (коллекция моделей представлений) на другую (коллекция моделей). Google wrapping observable collection как стартер (подсказка: избегайте двусторонней синхронизации, если это возможно). Эти сообщения в блоге старые, но все еще актуальны и хорошо читаются. Тривиальная упаковка описана в , этот ответ .

0
ответ дан Haukinger 19 January 2019 в 16:27
поделиться
Другие вопросы по тегам:

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