Python Django有很多模板问题

Python Django有很多模板问题,python,django,templates,django-templates,many-to-many,Python,Django,Templates,Django Templates,Many To Many,大家早上好 我做PHP程序员已经有一段时间了,但我觉得有必要朝着Python的方向发展,还有什么比玩Django更好的呢 在这个过程中,我来到了一个停止点,我知道有一个简单的解决方案,但我只是错过了它-如何在Django模板中显示许多关系 我的Django模型:(大多数字段已被删除) 因此,我在应用程序中使用的基本模型称为“配方”。 话虽如此,我仍在寻找两个问题的答案: 如何在配方的详细信息页面上显示配方的类别 如何在配方的详细信息页面上显示配方的图像 如果我进入Python shell并输入以

大家早上好

我做PHP程序员已经有一段时间了,但我觉得有必要朝着Python的方向发展,还有什么比玩Django更好的呢

在这个过程中,我来到了一个停止点,我知道有一个简单的解决方案,但我只是错过了它-如何在Django模板中显示许多关系

我的Django模型:(大多数字段已被删除)

因此,我在应用程序中使用的基本模型称为“配方”。
话虽如此,我仍在寻找两个问题的答案:

  • 如何在配方的详细信息页面上显示配方的类别
  • 如何在配方的详细信息页面上显示配方的图像
  • 如果我进入Python shell并输入以下内容,我会得到一个结果:

    >>> photos = Photo.objects.filter(recipe=1)
    >>> photos
    [<Photo: Awesome Pasta>]
    >>> for photo in photos:
    ...     print "Photo: %s" % photo.logo
    ... 
    Photo: images/recipes/2550298482_46729d51af__.jpg
    
    尽管如此,即使这样做有效,ID仍然硬编码到视图中,您将如何为每个配方使用此动态

    详细信息页面视图.py代码段:

    def details(request, slug='0'):
        p = get_object_or_404(Recipe, slug=slug)
        photos = Photo.objects.filter(recipe=1)
        return render_to_response('recipes/recipes_detail.html', {'p': p, 'photos': photos})
    
    提前感谢你们的帮助和理解,对于你们大家来说,这可能是一个非常简单的问题


    更新:删除模型中的附加字段时,我忘记了Recipes模型的categories字段。

    从我看到的情况来看,我认为您有一个小语法错误:

    {% photo.image %}
    
    应改为:

    {{ photo.image }}
    
    {%%}
    符号用于django模板标记。另一方面,变量用
    {{}
    符号表示

    要使其动态化,您可以利用以下事实:您的
    照片
    模型具有
    配方
    的外键。这意味着使用slug加载的
    配方
    实例与照片集之间存在反向关系:

    def details(request, slug='0'):
        p = get_object_or_404(Recipe, slug=slug)
        photos = p.photo_set.all()
    

    希望这对你有用。很高兴看到你喜欢和Django一起工作

    尽管这个问题在标题中提到了很多,但我实际上没有看到定义了多少字段。从技术上讲,“recipe=models.ForeignKey(recipe)”不是一种多对多关系吗?如果没有,我对所使用的语言表示歉意,并将很高兴对其进行更改。@R.Bemrose-我的歉意是,“类别”字段特别是一个多个字段,只是在删除问题不需要的额外字段时被删除了。非常感谢所有帮助,非常感谢,我的页面上现在有图像!
    {{ photo.image }}
    
    def details(request, slug='0'):
        p = get_object_or_404(Recipe, slug=slug)
        photos = p.photo_set.all()