是这样的,我的 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 新人不太懂,求指教...
迷茫2017-04-17 13:19:26
收藏的過程可以考慮用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})
這樣差不多行了