0

我正在开发一个测试 Django 应用程序 CatDB。我是每个“所有者”类都有一个变量,该变量是将该所有者列为其所有者的猫的数量。

在我的 Models.py 中:从 django.db 导入模型

class Owner(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField()
    location = models.CharField(max_length=50)
    def __str__(self):
        return self.name
    def num_cats(self): //This is the line in question
        return cat_set.count()

class Cat(models.Model):
    name = models.CharField(max_length=50)
    owner = models.ForeignKey(Owner)
    age = models.IntegerField()
    color = models.CharField(max_length=30)
    def __str__(self):
        return self.name

我尝试使用名为 num_cats 的变量来完成此操作,但它不起作用。

另外,在我的 Admin.py 中:

from django.contrib import admin
from catdb.models import Cat, Owner


class OwnerAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Basic information', {'fields': ['name','location'], 'classes': ['collapse']}),
    ]
    list_display = ('name','location','num_cats') //Use num_cats as a column in the list


admin.site.register(Owner, OwnerAdmin)
admin.site.register(Cat)

我怎样才能正确实施呢?

4

1 回答 1

2

而不是cat_set.count()你需要的self.cat_set.count(),它应该是:

def num_cats(self):
    return self.cat_set.count()
于 2013-07-10T03:45:52.140 回答