我正在努力创建自己的类似于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'
感谢您的指导。 谢谢。
您应该重写视图类get_object()
方法来递增计数器:
class AuctionItemDetailView(DetailView):
model = AuctionItem
def get_object(self, queryset=None):
item = super().get_object(queryset)
item.incrementViewCount()
return item
直接在 views.py 中进行增量。
class AuctionItemDetailView(DetailView):
model = AuctionItem
def get_object(self, queryset=None):
item = super().get_object(queryset)
item.viewCount += 1
item.save()
return item