我的 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)收藏的过程可以考虑用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})