我目前正在我的views.py中做这样的事情:
def home(request):
ingredients = Ingredience.objects.all()
drinks = Ingredience.objects.filter(category_id=1)
fruits = Ingredience.objects.filter(category_id=2)
etc.
meats = Ingredience.objects.filter(category_id=25)
return render_to_response('home.html', {'ingredients': ingredients, 'drinks': drinks, 'fruits': fruits, 'meats': meats,}, context_instance=RequestContext(request))
这是我的models.py:
from django.db import models
class IngredienceCategory(models.Model):
name = models.CharField(max_length=30)
def __unicode__(self):
return self.name
class Ingredience(models.Model):
name = models.CharField(max_length=30)
category = models.ForeignKey(IngredienceCategory, null=True, blank=True)
def __unicode__(self):
return self.name
class Food(models.Model):
name = models.CharField(max_length=30)
ingredients = models.ManyToManyField(Ingredience)
def __unicode__(self):
return self.name
django 中是否有一些技巧可以动态生成模板对象(即饮料、水果、肉类)?我什至不知道从哪里开始,但我想这样做:遍历所有成分对象并返回字典,该字典将保存按类别分组的项目(如第一个示例中所示)。
我试图用这个解决两个问题:
- 每个类别对象的代码几乎相同,因此有很多冗余。
- 每次向数据库添加新类别时,我都必须更新 views.py。
编辑:在我的模板中,我需要能够通过自己的变量(例如{{饮料}}访问每个对象(即饮料、水果、肉类等)。