Py学习  »  问与答

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

Xavier • 10 年前 • 7272 次点击  

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

新人求指教,谢谢大家!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/593
 
7272 次点击  
文章 [ 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表示关注类型(版块关注,用户关注,主题关注)

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