我想在views.py 中使用UUID 创建一个带有ID 的对象,然后直接从我创建它的视图文件中输入其特定路径。我得到的错误是:/item/create_item _reverse_with_prefix() 处的 TypeError * 之后的参数必须是可迭代的,而不是 UUID所以我想知道是否有人知道如何做到这一点?models.py:class Item(models.Model): id = models.UUIDField( primary_key=True, default=uuid.uuid4, editable=False) name = models.CharField(max_length=100, blank=True)views.pydef create_item(request): context = {} if request.method == 'POST': name = request.POST['name'] item = Item(name=name) item.save() return HttpResponsePermanentRedirect(reverse('item', args=(item.id))) return render(request, 'items/item.html', context)def item(request, pk): item = get_object_or_404(Item, pk=pk) #Code to be written
1 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
item.id您应该使用以下方法将 包装在单例元组中(…,):
return HttpResponsePermanentRedirect(reverse('item', args=(item.id,)))
然而,您可以使用redirect(…)
函数 [Django-doc],它基本上将 a 的结果包装reverse(…)
在 a 中HttpResponseRedirect(…)
,但这提供了一个带有位置参数和命名参数的接口:
from django.shortcuts import redirect
return redirect('item', pk=item.id, permanent=True)
添加回答
举报
0/150
提交
取消