1

同じ情報 (名前/スラッグ) であるが異なるモデルを参照する 10 個の詳細ビューを持つアプリケーションを構築しています。そのビュー内で、名前を使用して多対多の関係を示しています。

ビューごとに 1 つのテンプレート ファイルを使用したいと考えています。私が抱えている問題は、現在の詳細ビューのインデックスを参照したいブレッドクラムがあることです。

テンプレートに渡すために、get_context または名前を介して URL を提供する方法はありますか? したがって、generic_detail テンプレートでは、URL 名を変数として渡したいと考えています。

models.py

class Server(models.Model):
    name = models.CharField(max_length=50)
    datastore = models.ForeignKey('Datastore', default=DEFAULT_VALUE)

class Datastore(models.Model):
    name = models.CharField(max_length=50)
    slug = models.SlugField()

ビュー.py

class DatastoreIndexView(ListView):
   template_name = 'inventory/generic_index.html'
   model = Datastore


class DatastoreDetailView(DetailView):
   template_name = 'inventory/generic_detail.html'
   model = Datastore
   context_object_name = 'object'

urls.py

url(r'^datastore/$, DatastoreIndexView.as_vew(), name="datastore_index")
url(r'^datastore/(?P<slug>[\w-]+)/$,  DatastoreDetailView.as_vew(), name="datastore_detail")

generic_detail.html

{% block breadcrumbs %}
<ol class="nav  breadcrumb--path">
  <li class="milli"><a href="{% url 'home' %}">Home</a></li>
  <li class="milli"><a href=" Variable for URL for object.index ">{{ object.parent }}</a></li>
  <li class="milli">{{ object.name }}</li>
</ol>
{%  endblock breadcrumbs %}
4

1 に答える 1