Ваш отступ неверен в нескольких местах. Вам нужно создать пустую форму, если запрос не POST; и вам нужно вернуться при любых обстоятельствах. Итак:
def post_edit(request, pk):
post = get_object_or_404(Post, pk=pk)
if request.method == "POST":
form = PostForm(request.POST, request.FILES, instance=post)
if form.is_valid():
post = form.save(commit=False)
post.author = request.user
post.published_date = timezone.now()
post.save()
return redirect('post_detail', pk=post.pk)
else:
form = PostForm(instance=post)
return render(request, 'blog/post_edit.html', {'form':form})
Обратите внимание, как else
совпадает с первым if
, и отдача находится вне их обоих.
Было бы легче (и более соответствующий IMO) сериализировать данные из очереди - возможно, в плоской антенной решетке или List<T>
. С тех пор Queue<T>
реализации IEnumerable<T>
, необходимо смочь использовать:
List<T> list = new List<T>(queue);
Не все части платформы разработаны для сериализации XML. Вы найдете, что словарям также недостает отдела сериализации.
Очередь довольно тривиальна для реализации. Можно легко создать собственное, которое также реализует IList так, чтобы это было сериализуемым.
если Вы хотите использовать созданный в сериализации, необходимо играть по ее правилам, что означает значение по умолчанию ctor, и общественность получает/устанавливает свойства для участников, которых Вы хотите сериализировать (и по-видимому десериализовать) на типе данных, который Вы хотите сериализировать (MyData)