データベースにクエリを実行し、返されたオブジェクトのフィールドを表示する単純な Django アプリケーションがあります。この有向グラフ ビジュアライゼーションを自分のプロジェクトに統合するにはどうすればよいか考えていました。今までd3を使ったことはありません。
私のアプリケーションについて説明させてください。現時点では、ユーザーが書籍の一意の ID を入力して、書籍に関する情報に関するデータベースの内容を照会できるフォームにすぎません。これは正常に機能し、コンテンツはテンプレートを使用して表示されます。
私がやりたいことは、クエリされたオブジェクトのフィールドの 1 つを使用して、上記のグラフの例にデータをプッシュし、テキスト リンクが押されたときにこのグラフを新しいウィンドウに表示することです。
私のアプリケーション構造は次のとおりです。
コード
myapp.models.py:
from django.db import models
class Book(models.Model):
uid = models.IntegerField(primary_key=True)
title = models.CharField(max_length=30)
related_books = models.CharField(max_length=2048)
class Meta:
db_table = u'books'
フィールドrelated_books
には、グラフにしたいデータが含まれています。データはrel_book1 rel_book2 rel_book3 ...
、各書籍が照会された Book オブジェクトに関連する形式で保存されます。各オブジェクトにはn
関連する書籍がありますが、少なくとも常に 2 つ存在します。
myproject.templates.search.html:
<form action="" method="get">
<label for="id_q">Search:</label>
<input id="id_q" name="q" type="text">
<input type="submit" value="Submit">
{% if found_entries %}
<ul>
{% for i in found_entries %}
{{ i.uid }} {{ i.title }} {{ value|linebreaks }}
{% endfor %}
</ul>
{% endif %}
</form>
ここにグラフを表示します。テキストリンクが押されたときに新しいウィンドウで。
myapp.views.py:
from django.shortcuts import render_to_response
from django.template import RequestContext
from myapp.search import get_query
from myapp.models import Book
def search(request):
query_string = ''
found_entries = None
if ('q' in request.GET) and request.GET['q']:
query_string = request.GET['q']
found_entries = Book.objects.filter(uid=query_string)
return render_to_response('search.html',
{ 'query_string': query_string, 'found_entries': found_entries },
context_instance=RequestContext(request))
繰り返しになりますが、ユーザーが特定の本に固有の ID を入力すると、その本に関連するデータベースのコンテンツが表示されます。IDとタイトルが表示された時点で、有向グラフの例へのリンクも表示したいと思います。
私の質問は、related_books
Book モデルがクエリされたときにフィールドから情報を抽出するにはどうすればよいですか?これにより、このデータをグラフの例にプッシュして、生成された各 Book オブジェクトのグラフを生成できます。
我慢してくれてありがとう!