python - Django 收藏功能的实现
PHP中文网
PHP中文网 2017-04-17 13:17:26
0
1
1162

是这样的,我的 Django 项目里的用户可以发图片。
我想实现一个收藏功能,就是用户可以收藏其他用户发布的图片。
粗略想了下,model应该这样写:

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

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

但是它的views.py里面应该要怎么写呢?
Django 新人不太懂,求指教...

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(1)
迷茫

收藏的过程可以考虑用Ajax实现

def add_favorite(request):
    user = request.user
    picture = request.POST['picture_id']
    picture = Pictures.objests.get(id=picture)
    created_on = datetime.datetime.now()
    FavoritePicture.objects.update_or_create(user=user,picture=picture,created_on=created_on)

update_or_create 这个是Django1.7 新功能,
然后你可以考虑下是不是该用外键,我我按照外键的搞法写查询函数

def get_favourite_list(request):
    user = request.GET['username']
    user = User.objects.get(username=user)
    fav_pics = user.favoritepicture_set #这个名字是Django自动确定的
    return render_to_response('xxxx',{fav_pics=fav_pics})

这样差不多行了

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan