我正在建立一个网站,在页面上显示食谱的食谱。
这是我到目前为止所拥有的
models.py
class cookbook(models.Model):
title = models.CharField(max_length=255,unique=True)
class ingredient (models.Model):
name = models.CharField(max_length=255,unique=True)
class recipesteps(models.Model):
ingredient = models.ForeignKey(ingredient,on_delete=models.CASCADE)
instructions = models.TextField()
time = models.IntegerField(default=0)
class recipe(models.Model):
name = models.CharField(max_length=255,unique=True)
cookbook = models.ForeignKey(cookbook,on_delete=models.CASCADE)
ingredient_used = models.ManyToManyField(ingredient)
recipe_steps = models.ForeignKey(recipesteps,on_delete=models.CASCADE)
def __str__(self):
return 'name={} cookbook={} `'.format(self.name,self.cookbook)
views.py
from django.views.generic import DetailView
class RecipeDetailView(DetailView):
model = recipe
def get_context_data(self,**kwargs):
context = super(RecipeDetailView,self).get_context_data(**kwargs)
context['instructions'] = recipesteps.objects.filter(recipe=self.get_object())
return context
template.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h2>{{ object.cookbook }}</h2>
<h2> Recipe Name = {{ object.name }} </h2>
<h2> Steps To Make:</h2>
{{ instructions }}
</body>
</html>
模板中{{指令}}变量的输出为:
<QuerySet [<recipesteps: name=Tomato cookbook=Cooking with tomato >,<recipesteps: name=Lettuce cookbook= Cooking with lettuce >]>
有没有一种方法可以在模板中的某个位置仅显示成分名称,而在不带?的位置显示食谱?