Python 按项目所属类别列出项目

Python 按项目所属类别列出项目,python,django,Python,Django,我是个十足的新手,所以请容忍我。我以前从未使用过OOP或框架 我正在创建一个簿记系统,希望分类账按其所属类别显示。这是我的模型,它似乎有效: class COAGroup(models.Model): Name = models.CharField(max_length=200) def __str__(self): return self.Name class Ledger(models.Model): Name = models.CharField(

我是个十足的新手,所以请容忍我。我以前从未使用过OOP或框架

我正在创建一个簿记系统,希望分类账按其所属类别显示。这是我的模型,它似乎有效:

class COAGroup(models.Model):
    Name = models.CharField(max_length=200)
    def __str__(self):
        return self.Name

class Ledger(models.Model):
    Name = models.CharField(max_length=200)
    COAGroup = models.ForeignKey(COAGroup, on_delete=models.CASCADE)
    def __str__(self):
        return self.Name
我正在开发我的第一个视图,它应该按分类列出所有分类账。乙二醇

<h2>Some COAGroup Name</h2>
<ul>
 <li>A ledger that belongs to this group</li>
 <li>Another ledger that belonds to the group</li>
 <li>And another</li>
</ul>

<h2>Another COAGroup</h2>
<ul>
 <li>A ledger that belongs to this second group</li>
 <li>Another ledger</li>
</ul>
我已经设法让分类账显示在ListLedgers.html中,但我不知道如何按照我的示例让它们按COA组列出


谢谢大家!

在您看来,您最好已经创建了相关的
分类账
s:

def showledgers(request):  
    COAGroups = COAGroup.objects.prefetch_related('ledger')
    context = {
        'groups': COAGroups,
    }
    return render(request, 'ListLedgers.html', context)
注意:通常Django模型中字段的名称是用snake_大小写的,而不是PerlCase,因此它应该是:
name
,而不是
name


在您看来,您最好已经创建了相关的
分类账
s:

def showledgers(request):  
    COAGroups = COAGroup.objects.prefetch_related('ledger')
    context = {
        'groups': COAGroups,
    }
    return render(request, 'ListLedgers.html', context)
注意:通常Django模型中字段的名称是用snake_大小写的,而不是PerlCase,因此它应该是:
name
,而不是
name


你读了吗?你读了吗?谢谢,这几乎奏效了。我不需要做预回迁(代码出错),但是group.ledger\u set.all位完成了这个任务。我还按照您的建议将所有字段转换为snake_case,并查找了其他此类约定,因此我从一开始就正确地编写了。谢谢,这几乎成功了。我不需要做预回迁(代码出错),但是group.ledger\u set.all位完成了这个任务。我还按照您的建议将所有字段转换为snake_case,并查找了其他此类约定,因此我从一开始就正确编写了。
{% for group in groups %}
  <h2>{{ group.Name }}</h2>
  <ul>
  {% for ledger in group.ledger_set.all %}
    <li>{{ ledger.name }}</li>
  {% endfor %}
</ul>
{% endfor %}