Django在当天为视图增加了一个“点击”

时间:2014-12-07 19:40:31

标签: python django python-2.7 django-models django-views

我开始学习django所以我正在尝试做一个我的小项目,坚果我无法突破这一步:

我正在尝试检查某个页面有多少个观看次数。 这些是我的模特:

class Significado(models.Model):
    nome = models.CharField(max_length=30)
    significado = models.TextField()
    pub_date = models.DateField(auto_now_add=True)
    hits = models.IntegerField(default=0)


class Ip(models.Model):
    name = models.CharField(max_length=30, default=None)
    ip = models.CharField(max_length=15)
    view_date = models.DateField(default=None)

    def __str__(self):
        return self.ip

我的观点是:

def nomes(request, name):
    #mostra o nome que esta no url /significado/<nome>
    nameSearch = Significado.objects.get(nome__iexact = name)
    sig = nameSearch.significado
    todayDate = datetime.date.today()

    ipUser = request.META.get('REMOTE_ADDR')

    try:
        ipSearch = Ip.objects.filter(name__iexact = name,
            ip__iexact = ipUser, view_date=todayDate)
        if ipSearch:
            nameSearch.hits = nameSearch.hits + 1

    except:
        novoUser = Ip()
        novoUser.name = name
        novoUser.ip = ipUser
        novoUser.view_date = todayDate
        novoUser.save()
        nameSearch.hits += 1

    ipSearch = Ip.objects.filter(name__iexact = name,
            ip__iexact = ipUser, view_date=todayDate)

    return render(request, 'nome.html', {'nome':name,
        'significado':sig,
        #'data': ipSearch.view_date,
        'ip':ipUser,
        'lista':ipSearch,
        'count':nameSearch.hits,
    })

我想做的是:
- 如果有人查看某个页面,我会得到他的IP;
- 然后我检查它是否是我当天存储的ip;
- 如果是的话,不要在有效位上增加一个'命中';
- 如果ip在当天没有查看该页面,请增加一个'hit'并将该ip存储在当前日期。

这是我在这里的第一个问题,所以我为任何错误道歉!

谢谢!

1 个答案:

答案 0 :(得分:1)

所以你用

保存了你的IP(novoUser)对象
novoUser.save()

但您没有使用

保存您的Significado(nameSearch)对象
nameSearch.save()