djangoテンプレート/ビューを拡張する方法を探しています。
私の最初の実装は2つのモデルで構成されています(clients/models.py
):
class Client(models.Model):
...
class Address(models.Model):
client = models.ForeignKey(Client)
...
そしてそのかなり単純なテンプレート(clients/detail.html
):
{{client.name}}
Address: {{client.address.street}}, {{client.address.zipcode}} {{client.address.city}}
私のアプリケーションが成長するにつれて、新しいアプリ「請求書」が生まれました。
これも非常に単純です(invoices/models.py
):
class Invoice(models.Model):
client = models.ForeignKey(clients.models.Client)
...
clients/detail.html
クライアントの詳細ビューに請求書を表示する必要があるため、「請求書」アプリで作成して上書きします。
今のところ良い。
後で私は3番目のアプリ「quotes」を作成しました。再び私のクライアントの詳細-ビューは引用符を表示する必要があります。
「クライアント」で作成するclients/detail.html
と、請求書を表示する機能が失われます。
「請求書」と「見積もり」アプリは独立しているためです。
私の最初のアイデアは、「請求書」と「見積もり」を拡張して、それらの実装をどこかに登録できるSubViewクラスのようなものを作成することでした。
テンプレートは次のようになります。
{{client.name}}
Address: {{client.address.street}}, {{client.address.zipcode}} {{client.address.city}}
{% for view in views %}
<h1>{{view.title}}</h1>
{{view.get_html}}
{% endfor %}
これは良い方法admin.site
ですか?サブビューを登録するために-のような実装を使用する必要がありますか?