gpt4 book ai didi

python - 如何在 Django 中基于类的 ListView 中添加类似按钮

转载 作者:行者123 更新时间:2023-12-05 07:17:40 25 4
gpt4 key购买 nike

我在详细 View 中添加了类似按钮,但无法在 ListView 中添加类似按钮的逻辑。我已经注释掉了我在下面的详细 View 中使用的逻辑,它无法在 ListView 中创建类似按钮。任何人都可以建议我做最好的方法,有人可以帮我解决这个问题。

模型.py

models.py 中的代码

class AlbumVoteManager(models.Manager):

def get_vote_or_unsaved_blank_vote(self,album,user):
try:
return Vote.objects.get(album=album,user=user)

except ObjectDoesNotExist:
return Vote(album=album,user=user)

class AlbumVote(models.Model):
UP = 1
DOWN = -1
VALUE_CHOICE = ((UP, "👍️"),(DOWN, "👎️"),)


like = models.SmallIntegerField(null=True, blank=True, choices=VALUE_CHOICE)
user = models.ForeignKey(User,on_delete=models.CASCADE)
album = models.ForeignKey(Album, on_delete=models.CASCADE)
voted_on = models.DateTimeField(auto_now=True)
created_on = models.DateTimeField(auto_now_add=True)

objects = AlbumVoteManager()

class Meta:
unique_together = ('user', 'album')

表单.py

form.py 中的代码

class AlbumVoteForm(forms.ModelForm):

class Meta:
model = AlbumVote
fields = ['like']

View .py

views.py 中的代码

class AlbumListView(ListView):
model = Album
paginate_by = 5

# def get_context_data(self,**kwargs):
# ctx = super().get_context_data(**kwargs)

# if self.request.user.is_authenticated:
# vote =
AlbumVote.objects.get_vote_or_unsaved_blank_vote(album=self.object_list.object, user = self.request.user)
# if vote.id:
# vote_url = reverse('music:album_vote_update', kwargs={'album_id':vote.album.id,'pk':vote.id})
# else:
# vote_url = reverse('music:album_vote_create', kwargs={'album_id':self.object_list.object.id})


# vote_form = AlbumVoteForm(instance=vote)
# ctx['vote_form'] = vote_form
# ctx['vote_url'] = vote_url
# return ctx

专辑列表.html

专辑 ListView 中的代码。

  <div class="container">
{% if object_list %}
{% for album in object_list %}

<div class="card my-3">
<div class="card-header">
Featured
</div>
<div class="card-body">
<h5 class="card-title">

<a href="{% url 'music:detail_view' pk=album.id %}"><strong>{{album.title}}</strong></a>

</h5>
<p class="card-text">{{album.discription}}.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>

最佳答案

好吧,这可以通过将唯一 ID 传递给按钮来实现,而模板上的所有类都是相同的。Medium上的这篇文章可以引用here它使用 AJAX 实现了类似的东西

关于python - 如何在 Django 中基于类的 ListView 中添加类似按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58693797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com