社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  问与答

用 Django 写网站怎样实现收藏功能?

Xavier • 10 年前 • 6891 次点击  

我要做的一个小网站,用户们可以发布图片,但是要怎样实现用户收藏图片和收藏其他用户的功能呢?主要问题是,数据表应该如何设计?

新人求指教,谢谢大家!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/593
 
6891 次点击  
文章 [ 6 ]  |  最新文章 10 年前
Xavier
Reply   •   1 楼
Xavier    10 年前

谢谢大家,已经做好。

Py站长
Reply   •   2 楼
Py站长    10 年前

@yjiehn 他这个是做关注图片的,没有关注 用户

Rudy-Yuan
Reply   •   3 楼
Rudy-Yuan    10 年前

@Xavier 请问,这样子能做到一个用户关注多个其他用户吗?

Py站长
Reply   •   4 楼
Py站长    10 年前

view, 的话,比如,你关注图片的时候,请求时就加一条数据库记录呗

Xavier
Reply   •   5 楼
Xavier    10 年前

@Django中国社区 我想通了,比如关注图片的 model 应该这样写:

class FavoritePicture(models.Model):
    user = models.ForeignKey(User)
    picture = models.ForeignKey(Pictures)
    created_on = models.DateTimeField(auto_now_add=True)

    class Meta:
        unique_together = ('user', 'picture')

    def __unicode__(self):
    return "%s likes picture %s" % (self.user, self.picture)

但是 views.py 里面的函数应该怎么写呢?求指教!

Py站长
Reply   •   6 楼
Py站长    10 年前

收藏用户的功能和本社区的关注功能很相似,可以做成以下方式

CREATE TABLE `conanvex_attention` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `user_id` INT(11) NOT NULL,
    `type_id` INT(11) NOT NULL,
    `attention_time` DATETIME NULL DEFAULT NULL,
    `type` INT(11) NOT NULL,
    PRIMARY KEY (`id`),
    INDEX `conanvex_attention_fbfc09f1` (`user_id`)
)

假设用户A要关注用户B,

id是正增长的,user_id代表想要关注别人的用户A,type_id表示要被关注的用户B,Type表示关注类型(版块关注,用户关注,主题关注)

你可以以类似的方法来做,你有两种关注类型,一个是关注用户,一个是关注图片