为什么我的多对多字段的值即使包含用户也为零?

时间:2019-03-25 21:17:05

标签: python django many-to-many

我目前正在创建一个辩论网站,但喜欢系统存在问题。在我的模型中,我有一个称为“辩论”的类,该类具有“喜欢”,它喜欢成为“多对多”领域。在我的管理页面上,说“喜欢”字段有一定数量的用户-但是当我打印“喜欢”计数时,它显示为0。

我已经尝试过更改喜欢模型的参数,在模型中手动设置用户值,并检查我是否错误地打印了该值,但是似乎没有一个能解决我的问题。

在模型文件中

class Debate(models.Model):
    username = models.CharField(max_length =20 , blank=True, default='')
    title = models.CharField(max_length = 200, blank=True, default='')
    likes = models.ManyToManyField(UserProfile, related_name='likes', blank=True)

在管理员文件中

from django.contrib import admin
from .models import Debate, Comments
class InfoAdmin(admin.ModelAdmin):
    list_display = ('id', 'title', 'like_count',)
    def like_count(self,obj):
        return obj.likes.all().count()
admin.site.register(Debate, InfoAdmin)

单个辩论喜欢部分中的管理员页面(辩论标题为h)

Likes: UserProfile object(5)
       UserProfile object(9)

管理员页面辩论列表

ID                          TITLE               LIKE COUNT
13                            h                      0

这是刚刚创建辩论时的类似输出。您会希望赞计数会打印2,因为有两个对象,但是它会打印0。

0 个答案:

没有答案