Python 如何获取'animal'对象的类别名称?

Python 如何获取'animal'对象的类别名称?,python,django,Python,Django,我正在学习django ORM class AnimalFile(models.Model): filepath = models.FileField(upload_to="f") class Food(models.Model): main = models.ForeignKey(AnimalFile) class Category(models.Model): name = models.CharField(max_length=255) food = m

我正在学习django ORM

class AnimalFile(models.Model):
    filepath = models.FileField(upload_to="f")

class Food(models.Model):
    main = models.ForeignKey(AnimalFile)

class Category(models.Model):
    name = models.CharField(max_length=255)
    food = models.ForeignKey(Food)
观点:

def single_animal(request,id):
    animal = AniamalFile.objects.get(id=id)

如何获取
动物
对象的类别名称?我还需要在模板中显示它。

在视图中,您可以执行以下操作:

def single_animal(request,id):
    animal = AniamalFile.objects.get(id=id)

    animal_category=None
    categories = Category.objects.filter(food__main=animal)
    if categories:
        animal_category = categories[0]
您可以将其作为上下文变量传递,并以
{{animal_category}}

或者,如果要显示所有类别,只需在上下文和模板中发送
categories

{% for cat in categories %}{{cat.name}} {% endfor %}
或者

def single_animal(request,id):
    animal = AniamalFile.objects.get(id=id)

    animal_category=None
    foodset = animal.food_set.all()

    categories = Category.objects.filter(food__in=foodset)

有更好的办法。去做吧:)