现在想复用BundleList的post方法。我要么找出绝对 URL 并使用 from curses import wrapper
import curses
def main(stdscr):
mY = curses.LINES
win = curses.newwin(100,50,0,50)
win.keypad(True)
numbers = [n for n in range(0,1001)]
ylen = len(numbers)
iny = 0
border_y = mY-5
def scroll(window):
[window.addstr(y, 0, f'{b} \n') for y, b in enumerate(numbers[iny:iny+border_y])]
window.refresh()
scroll(win)
### KEY PRESS ###
while(True):
ch = win.getkey()
if ch == 'KEY_UP':
if(iny>0):
iny-=1
scroll(win)
elif ch == 'KEY_DOWN':
if(iny<ylen-border_y):
iny+=1
scroll(win)
elif ch == 'q':
break
wrapper(main)
发送请求。
第二种方法是在视图函数中通过 requests.post(URL)
重用。但我无法设置 return BundleList.as_view()(request)
。请求数据是不可变的。
当我尝试使用
request.data = data
它只是给了我:
url = reverse_lazy(BundleList.as_view(), request=request)
print(f"{url = }")
BundleList 是一个基于类的视图,带有 get 和 post 方法。
NoReverseMatch at /generateSampleBundle/
Reverse for 'my_app.views.BundleList' not found. 'my_app.views.BundleList' is not a valid view function or pattern name.
有人可以帮我吗?
答案 0 :(得分:0)
您应该为您的视图设置 name
并在 reverse_lazy()
例如:
drfurlpatterns = [ # DRF URL endpoints
path('bundles/', views.BundleList.as_view()), name='bundle-list'
]
然后
url = reverse_lazy('bundle-list', request=request)
看,docs
另外,要知道为什么 request.data
有时是不可变的 see this question