Django DetailView 中的增量视图计数
Increment view count in Django DetailView
我正在创建我自己的类似于 eBay 的小型拍卖风格应用程序,我只是想增加我设置的 viewCount 变量,并将该值显示为页面被查看的次数。
在 views.py 文件中,因为我有对我的模型的引用,所以我想我可以这样调用 model.py 中的 incrementViewCount():
views.py
class AuctionItemDetailView(DetailView):
model = AuctionItem
model.incrementViewCount()
model.py
viewCount = models.IntegerField(default=0)
def incrementViewCount(self):
self.viewCount += 1
self.save()
控制台报错信息如下:
TypeError: incrementViewCount() missing 1 required positional argument: 'self'
非常感谢您的指导。
谢谢
您应该覆盖您的视图 class get_object()
方法来增加计数器:
class AuctionItemDetailView(DetailView):
model = AuctionItem
def get_object(self, queryset=None):
item = super().get_object(queryset)
item.incrementViewCount()
return item
我正在创建我自己的类似于 eBay 的小型拍卖风格应用程序,我只是想增加我设置的 viewCount 变量,并将该值显示为页面被查看的次数。
在 views.py 文件中,因为我有对我的模型的引用,所以我想我可以这样调用 model.py 中的 incrementViewCount():
views.py
class AuctionItemDetailView(DetailView):
model = AuctionItem
model.incrementViewCount()
model.py
viewCount = models.IntegerField(default=0)
def incrementViewCount(self):
self.viewCount += 1
self.save()
控制台报错信息如下:
TypeError: incrementViewCount() missing 1 required positional argument: 'self'
非常感谢您的指导。 谢谢
您应该覆盖您的视图 class get_object()
方法来增加计数器:
class AuctionItemDetailView(DetailView):
model = AuctionItem
def get_object(self, queryset=None):
item = super().get_object(queryset)
item.incrementViewCount()
return item