Python 在Django中使用查询时出现的问题

Python 在Django中使用查询时出现的问题,python,django,Python,Django,所以我想得到的是以下内容。 用户可以选择代码中显示的3个类别 在这些类别中,他们可以添加任意数量的植物。 在我的视图:集合中,我希望用户看到以下内容: 收藏 类别由用户选择 工厂1 植物2 类别由用户选择2 我现在得到的是: 收藏 类别由用户选择 类别由用户选择2 类别由用户选择3 基本上这就是models.py中的代码: 类别设备\类别(型号.型号): “”“此类包含不同类别的用户”“” 类别_选择=[ (“室内植物”、“室内植物”), (“肉质植物”、“肉质植物”), (‘户外’、‘户

所以我想得到的是以下内容。 用户可以选择代码中显示的3个类别

在这些类别中,他们可以添加任意数量的植物。 在我的视图:集合中,我希望用户看到以下内容:

收藏

类别由用户选择

  • 工厂1
  • 植物2
类别由用户选择2

我现在得到的是:

收藏

类别由用户选择

类别由用户选择2

类别由用户选择3

基本上这就是models.py中的代码:

类别设备\类别(型号.型号):
“”“此类包含不同类别的用户”“”
类别_选择=[
(“室内植物”、“室内植物”),
(“肉质植物”、“肉质植物”),
(‘户外’、‘户外’),
]
“多个类别的复数”
类元:
详细名称复数='Categories'
“”“返回上述选项”“”
类别=模型.CharField(最大长度=50,选项=类别选项)
定义(自我):
返回自我类别
类别工厂名称(型号.型号):
“”“此类包含位于特定类别中的植物名称”“”
“”“将植物链接到所选类别之一”“”
category=models.ForeignKey(Plant\u category,on\u delete=models.CASCADE,related\u name='Plant\u names')
#与电厂数据库API连接的占位符
工厂=型号。CharField(最大长度=50)
“”“从用户返回设备输入”“”
定义(自我):
回归自我植物
这是views.py中的代码:

def收集(请求):
“”“打开植物集合的页面”“”
plant\u categories=plant\u categories.objects.all().order\u by('类别')
上下文={
“植物种类”:植物种类,
}
返回呈现(请求'plntz_main/collection.html',上下文)
这是collection.html中的代码:

    {plant_categories%} {{category}} {%用于plant_类别中的名称。plant_名称。all%}
  • {{name.plant}
  • {%endfor%} {%empty%}
  • 尚未添加任何类别。
  • {%endfor%}
为类别内的工厂提取的数据一定有问题。 我似乎找不到这是什么原因

例如,这是在Houseplant下添加的管理数据:

  • 室内植物1
  • 室内植物2
这是在肉质植物下面添加的:

  • 仙人掌1
  • 仙人掌2

    • 这是什么导致了问题:您没有正确地引用对象/查询集,因此没有数据被前端呈现

      您的上下文包含对象
      plant\u类别
      ,应相应循环:

      <ul>
      {% for category in plant_categories %}
          <h3>{{ category }}</h3>
      
          # Refer to object within context
          {% for name in plant_categories %}
      
              <li>{{ name.plant }}</li> # Depending on what you would like to render you have to adapt here
      
          {% endfor %}
      {% empty %}
          <li>No category has been added yet.</li>        
      {% endfor %}
      

      型号
      Plant\u分类是否存在?是的,是否需要添加@乔纳斯,请。。。是的,对不起!完成:)@JonasP.S。三引号字符串是多行的。谢谢@jonas的回复。我试着相应地编辑代码,现在我得到了公告点,但没有关于要点的实际数据。因此,我想用name.plant呈现的是存储在这些特定类别中的植物名称。抱歉,如果这真的让人困惑,我对编程非常陌生,我可能正在尝试加快速度:)-当我尝试在编辑器中运行该打印功能时,我遇到以下错误:文件“views.py”,第3行,在from.models import Plant_类别中,Plant_name ImportError:尝试在没有已知父项的情况下进行相对导入package@de_l3ns由于引用不良,views.py文件无法从models.py导入所需的模型。因此,总之,视图函数无法获取任何queryset,因为它没有模型。更进一步说,由于上下文不会从数据库返回任何对象,因此无法在前端呈现任何数据。首先确保修复这些导入:)好的@Jonas谢谢你为我指明了正确的方向。我可能想在我能走路之前跑,但我想尝试和错误是最好的学习工具!干杯@祝你好运,欢迎再来找我。我每天都在附近。我很想打扰你,但我记得你说过,如果我碰巧再次需要帮助,我可以打你。你能看看这个django问题吗我编辑了那篇文章。干杯@乔纳斯
      
      def collection(request):
      """The page that opens the collection of plants"""
      plant_categories = Plant_category.objects.all().order_by('category')
      
      
      context = {
          'plant_categories': plant_categories,
      }
      
      # Print for debugging
      print(plant_categories)
      
      return render(request, 'plntz_main/collection.html', context)