【发布时间】:2021-07-27 04:07:40
【问题描述】:
目前,每次我点击网站上的产品链接时,整个数据库列“视图”都会根据需要增加 1,因此只有行增加 1。链接会在外部网站中打开。通过单击产品图像打开链接。任何建议将不胜感激
模型.py
class T_shirt(models.Model):
Images = models.ImageField()
Titles = models.CharField(max_length=250, primary_key=True)
Prices = models.CharField(max_length=250)
Link = models.CharField(max_length=250)
Website = models.CharField(max_length=250)
Brand = models.CharField(max_length=250)
views = models.IntegerField(default=0)
views.py
def t_detail(request):
if request.method == 'POST':
T_shirt.objects.update(views=F('views') + 1)
if 'q' in request.GET:
q = request.GET['q']
owner_obj = T_shirt.objects.filter(Titles__icontains=q)
else:
owner_obj = T_shirt.objects.all()
p = Paginator(owner_obj, 20)
page_num = request.GET.get('page', 1)
try:
page = p.page(page_num)
except EmptyPage:
page = p.page(1)
return render(request, 'tshirtshtml.html', {"owner_obj": page})
html
<ul class="products">
{% for v in owner_obj %}
<div class="container">
<form method="POST" type="submit">
<button style="border: none;">
{% csrf_token %}
<a href="{{ v.Link }}" rel="noopener noreferrer">
<img src="{{ v.Images }}" width="150" height="150">
</a>
</button>
</form>
<figcaption> {{ v.Titles }} </figcaption>
<figcaption> <b>{{ v.Prices }}</b></figcaption>
</div>
{% endfor %}
更新代码
def t_detail(request):
if request.method == 'POST':
T_shirt.objects.filter(Titles=request.POST.get('tshirt_id')).update(views=F('views') + 1)
if 'q' in request.GET:
q = request.GET['q']
owner_obj = T_shirt.objects.filter(Titles__icontains=q)
else:
owner_obj = T_shirt.objects.all()
p = Paginator(owner_obj, 20)
page_num = request.GET.get('page', 1)
try:
page = p.page(page_num)
except EmptyPage:
page = p.page(1)
return render(request, 'tshirtshtml.html', {"owner_obj": page})
【问题讨论】:
标签: python html django database django-models