我想在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
提交
取消