我想用django只需单击一次即可编辑一个数据库字段

我想用django只需单击一次即可编辑一个数据库字段,django,django-views,Django,Django Views,我有一个电影数据库和一个布尔字段init。我想单击一个按钮并更改该布尔字段的值。但我无法从url获取电影pk。我收到错误:“WSGIRequest”对象没有属性“kwargs” 以下是我的看法: @需要登录\u def一个cikan按钮(自身,**kwargs): pk=self.kwargs['pk'] 打印(主键) film=Movies.objects.get(pk=pk) 尝试: film.characterized=False 电影节 返回重定向(“/headoffice/onecik

我有一个电影数据库和一个布尔字段init。我想单击一个按钮并更改该布尔字段的值。但我无法从url获取电影pk。我收到错误:“WSGIRequest”对象没有属性“kwargs”

以下是我的看法:

@需要登录\u
def一个cikan按钮(自身,**kwargs):
pk=self.kwargs['pk']
打印(主键)
film=Movies.objects.get(pk=pk)
尝试:
film.characterized=False
电影节
返回重定向(“/headoffice/onecikanlar/”)
例外情况除外,如e:
返回重定向(“/headoffice/onecikanlar/”)
返回重定向(“/headoffice/onecikanlar/”)
我的网址:

路径('onecikanlar/kaldir/',views.one_cikan_按钮,name=“onecikaldir”), 我的模板:


我的模型:

class电影(models.Model):
featured=models.BooleanField(默认值=False)

我怎样才能解决这个问题?或者我可以将UpdateView与自定义设置一起使用吗?

任何django view函数都会以WSGIRequest作为第一个参数进行调用。因此,如果您使用
self
作为第一个参数定义函数,我想
self
请求,而
self.kwargs['pk']
没有多大意义
pk=kwargs['pk']
是正确的(
pk=kwargs.get('pk')
在没有pk的情况下会更好),用
request
替换
self
会更有意义。因为您知道要传递给视图的内容(URL模式保证会传递
pk
),您只需定义视图函数,如
def one\u cikan\u按钮(请求,主键):…
谢谢。这解决了我的问题