V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
python30
V2EX  ›  Python

django 实现点击按钮查看资源然后扣积分,怎么样让用户与这个资源相关

  •  
  •   python30 · 2018-12-10 20:11:54 +08:00 · 1631 次点击
    这是一个创建于 2182 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如

    资源信息
    class NiHao(models.Model):
    mingzi = models.CharField(max_length=60, verbose_name=_(u'名字 /称呼'), blank = True, null = True,)
    vip = models.CharField(max_length=60, verbose_name=_(u'看这里要扣积分'), blank = True, null = True,)
    body = models.TextField(_(u'求职主要介绍,教育经历,工作经历等'))
    mmtags = models.ManyToManyField('MmTags', verbose_name = _(u'标签信息'), blank = True)
    category = models.ForeignKey('Category', verbose_name = _('栏目分类'))
    level = models.IntegerField(default=2, verbose_name=u'值几分')

    用户信息
    class User(AbstractUser):
    levels = models.IntegerField(default=0, verbose_name = u'总积分')
    nickname = models.CharField(max_length=36, blank=True, null=True, verbose_name=u'名称')
    list_id = models.PositiveIntegerField(_(u'信息类型区别'), default = 0)

    如果一个用户要看资源里的 VIP 字段的信息 需要点击一个按妞,ajax 需要一个涵数执行 aauser.levels - bbnihao.level 这样

    如果用户这次查看了。下次再看还需要再扣积分。不知道用 django 实现的话。怎么样让用户与这个资源有一个标志。
    当用户再查看到这信息的时候。不需要再扣积分

    不知这样说能让大家明白我要解决的问题不。
    水行有限实在没想出啥思种。哪位大神指导一下?
    6 条回复    2018-12-10 22:18:41 +08:00
    beny2mor
        1
    beny2mor  
       2018-12-10 20:47:00 +08:00
    难道没使用数据库吗
    zxcvsh
        2
    zxcvsh  
       2018-12-10 21:39:01 +08:00 via iPhone
    总该有个统计信息的“库”吧
    不管是文件还是数据库,加一个字段标识,扣积分的时候修改值
    下次用户登录的时候就加载到 session 里面,这是最简单的
    python30
        3
    python30  
    OP
       2018-12-10 21:39:15 +08:00
    @beny2mor
    肯定用。我现在想到了一个思路正在试。不知道可以不
    largecat
        4
    largecat  
       2018-12-10 21:52:14 +08:00 via Android
    建个库存放用户 id 和资源 id 的关系,
    python30
        5
    python30  
    OP
       2018-12-10 22:06:52 +08:00
    @largecat 用 Contenttypes ?
    xpresslink
        6
    xpresslink  
       2018-12-10 22:18:41 +08:00
    这个是很简单的问题啊,直接再弄一个 Model
    通常只要两个字段,user_id, resource_id, 分别外键到 User Model 和 Nihao Model
    这么弄最省事,逻辑上也简单,但是只能用于数据量不大的情况。

    这么弄如果在用户量比较大,资源量也很大的情况下要考虑一下性能问题。
    那样话只能用 redis 这种内存数据库,把 user_id 做键对应列表,所有访问过的资源 id 压到 list 里面。
    不过要考虑一下数据持久化方案。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2224 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:31 · PVG 09:31 · LAX 17:31 · JFK 20:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.