Python Django显示用户收藏夹卡页面
这是我与Django的第一个项目,我到处搜索,但没有找到解决方案 在我的网站上,我有卡片,我希望用户能够将他想要的卡片添加到收藏夹中。这个函数可以工作,但我想创建一个页面,让他可以看到自己最喜欢的卡片。 这是我的问题:我只能显示所有用户的所有收藏卡。当我只想要经过身份验证的用户的收藏夹卡时。 这是我的密码: 这是.html文件:Python Django显示用户收藏夹卡页面,python,django,favorites,Python,Django,Favorites,这是我与Django的第一个项目,我到处搜索,但没有找到解决方案 在我的网站上,我有卡片,我希望用户能够将他想要的卡片添加到收藏夹中。这个函数可以工作,但我想创建一个页面,让他可以看到自己最喜欢的卡片。 这是我的问题:我只能显示所有用户的所有收藏卡。当我只想要经过身份验证的用户的收藏夹卡时。 这是我的密码: 这是.html文件: {% if user.is_authenticated %} {% for carte in carte_list %} {% if carte.f
{% if user.is_authenticated %}
{% for carte in carte_list %}
{% if carte.favori.exists %}
//code for my card
{% endif %}
{% endfor %}
{% endif %}
class FavoriListView(generic.ListView):
model = Carte
template_name = '../templates/appli/favori_list.html'
def get_context_data(self, *args, **kwargs):
context = super(FavoriListView, self).get_context_data(*args, **kwargs)
context['carte_list'] = Carte.objects.all()
return context
class CarteDetailView(generic.DetailView):
model = Carte
template_name = '../templates/appli/carte_detail.html'
def get_context_data(self, *args, **kwargs):
context = super(CarteDetailView, self).get_context_data(*args, **kwargs)
context['carte_list'] = Carte.objects.all()
return context
def get(self, request, *args, **kwargs):
id = self.kwargs['pk']
carte = get_object_or_404(Carte, id=id)
est_favori = False
if carte.favori.filter(id=request.user.profil.id).exists():
est_favori = True
else:
est_favori = False
context = {
'carte': carte,
'est_favori': est_favori
}
context['carte_list'] = Carte.objects.all()
return render(request, '../templates/appli/carte_detail.html', context)
def carte_favori(request, id):
carte = get_object_or_404(Carte, id=id)
if carte.favori.filter(id=request.user.profil.id).exists():
carte.favori.remove(request.user.profil)
else:
carte.favori.add(request.user.profil)
return HttpResponseRedirect(carte.get_absolute_url())
class Profil(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
//some others attributes
def get_absolute_url(self):
return reverse('profil', args=[str(self.id)])
class Carte(models.Model):
titre = models.CharField(max_length=200, verbose_name='Titre')
//some others attributes
favori = models.ManyToManyField(Profil, blank = True)
def __str__(self):
return self.titre
def get_absolute_url(self):
return reverse('carte-detail', args=[str(self.id)])
这是我的视图.py文件:
{% if user.is_authenticated %}
{% for carte in carte_list %}
{% if carte.favori.exists %}
//code for my card
{% endif %}
{% endfor %}
{% endif %}
class FavoriListView(generic.ListView):
model = Carte
template_name = '../templates/appli/favori_list.html'
def get_context_data(self, *args, **kwargs):
context = super(FavoriListView, self).get_context_data(*args, **kwargs)
context['carte_list'] = Carte.objects.all()
return context
class CarteDetailView(generic.DetailView):
model = Carte
template_name = '../templates/appli/carte_detail.html'
def get_context_data(self, *args, **kwargs):
context = super(CarteDetailView, self).get_context_data(*args, **kwargs)
context['carte_list'] = Carte.objects.all()
return context
def get(self, request, *args, **kwargs):
id = self.kwargs['pk']
carte = get_object_or_404(Carte, id=id)
est_favori = False
if carte.favori.filter(id=request.user.profil.id).exists():
est_favori = True
else:
est_favori = False
context = {
'carte': carte,
'est_favori': est_favori
}
context['carte_list'] = Carte.objects.all()
return render(request, '../templates/appli/carte_detail.html', context)
def carte_favori(request, id):
carte = get_object_or_404(Carte, id=id)
if carte.favori.filter(id=request.user.profil.id).exists():
carte.favori.remove(request.user.profil)
else:
carte.favori.add(request.user.profil)
return HttpResponseRedirect(carte.get_absolute_url())
class Profil(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
//some others attributes
def get_absolute_url(self):
return reverse('profil', args=[str(self.id)])
class Carte(models.Model):
titre = models.CharField(max_length=200, verbose_name='Titre')
//some others attributes
favori = models.ManyToManyField(Profil, blank = True)
def __str__(self):
return self.titre
def get_absolute_url(self):
return reverse('carte-detail', args=[str(self.id)])
(我也有一个CarteListView)
这是models.py文件:
{% if user.is_authenticated %}
{% for carte in carte_list %}
{% if carte.favori.exists %}
//code for my card
{% endif %}
{% endfor %}
{% endif %}
class FavoriListView(generic.ListView):
model = Carte
template_name = '../templates/appli/favori_list.html'
def get_context_data(self, *args, **kwargs):
context = super(FavoriListView, self).get_context_data(*args, **kwargs)
context['carte_list'] = Carte.objects.all()
return context
class CarteDetailView(generic.DetailView):
model = Carte
template_name = '../templates/appli/carte_detail.html'
def get_context_data(self, *args, **kwargs):
context = super(CarteDetailView, self).get_context_data(*args, **kwargs)
context['carte_list'] = Carte.objects.all()
return context
def get(self, request, *args, **kwargs):
id = self.kwargs['pk']
carte = get_object_or_404(Carte, id=id)
est_favori = False
if carte.favori.filter(id=request.user.profil.id).exists():
est_favori = True
else:
est_favori = False
context = {
'carte': carte,
'est_favori': est_favori
}
context['carte_list'] = Carte.objects.all()
return render(request, '../templates/appli/carte_detail.html', context)
def carte_favori(request, id):
carte = get_object_or_404(Carte, id=id)
if carte.favori.filter(id=request.user.profil.id).exists():
carte.favori.remove(request.user.profil)
else:
carte.favori.add(request.user.profil)
return HttpResponseRedirect(carte.get_absolute_url())
class Profil(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
//some others attributes
def get_absolute_url(self):
return reverse('profil', args=[str(self.id)])
class Carte(models.Model):
titre = models.CharField(max_length=200, verbose_name='Titre')
//some others attributes
favori = models.ManyToManyField(Profil, blank = True)
def __str__(self):
return self.titre
def get_absolute_url(self):
return reverse('carte-detail', args=[str(self.id)])
你需要像这样过滤卡片上下文['carte\U list']=carte.objects.filter(favori\uu user=self.request.user)omg非常感谢你这太简单了!!我应该以更格式化的方式发布。没关系,就算代码格式不正确,你也能做到这点,这是你的荣幸。