我有一個Django網站,我想顯示兩個圖表(Charta和 Chartb)以獲取股票列表,但我正在努力定義我的模型。右 現在,我在我的models.py多個相關表:繼Django ForeignKey關係向後
from django.db import models
class Stock(models.Model):
name = models.CharField(max_length=100)
company = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class Charta(models.Model):
stock = models.ForeignKey(Stock)
x_axis = models.IntegerField(default=0)
y_axis = models.IntegerField(default=0)
class Chartb(models.Model):
stock = models.ForeignKey(Stock)
x_axis = models.IntegerField(default=0)
y_axis = models.IntegerField(default=0)
我的目標是有一個股票網頁,其中列出了我的股票表中的所有股票,然後 詳細信息頁面的每一個股票,我可以顯示每個圖表的 的x和y座標。 (一旦我有這些座標,我可以繪製它們,但現在我只是在屏幕上打印座標而苦苦掙扎)。到目前爲止,我的views.py 文件看起來像這樣:
from django.shortcuts import render, get_object_or_404
from stocks.models import Stock, Charta, Chartb
def index(request):
stock_list = Stock.objects.all()
context = {'stock_list': stock_list}
return render(request, 'stocks/index.html', context)
def detail(request, stock_id):
stock = get_object_or_404(Stock, pk=stock_id)
return render(request, 'stocks/detail.html', {'stock': stock})
做事就這樣,我能夠很容易地得到呈現在我的表中的所有股票 ,連接每一個到詳細信息頁面股頁面,使用下面的index.html文件 :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<body>
<h1>Stocks</h1>
{% if stock_list %}
<ul>
{% for stock in stock_list %}
<li><a href="/stocks/{{ stock.id }}/">{{ stock.name }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No stocks are available.</p>
{% endif %}
</body>
</html>
我在其中顯示了每隻股票的座標在細節 頁面的問題。我想有一個details.html頁面如下所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<body>
<h1>Stock Details</h1>
<!-- This works fine -->
<p>The name of this stock is <strong>{{ stock.name }}</strong> </p> <br>
<p>This stock comes from <strong>{{ stock.company }}</strong> </p> <br>
<!-- This doesn't work -->
<p>The x values for this stock are: </p>
<ul>
{% for x_val in stock.charta.x_axis %}
<li>x_val</li>
{% endfor %}
</ul>
<p>The y values for this stock are: </p>
<ul>
{% for y_val in stock.charta.y_axis %}
<li>y_val</li>
{% endfor %}
</ul>
</body>
</html>
但是,我不能打電話給x_values和y_values喜歡的東西 stock.charta.x_axis
。有沒有更好的方法可以設置我的模型,以便我可以訪問細節頁面中每個股票的圖表數據? 直觀地說,我有一個表格列出股票,然後使用某種SQL連接訪問每個圖表的數據。
我已經把這個項目的一個最小的例子在github here。
謝謝!
你意味着'x_value'是'x_axis'? 'y_value'分別。 – gwaramadze
@pythonishvili:啊,是的。謝謝 - 這是一個錯字。我已經編輯了這個問題 - 儘管如此,代碼仍然不適用於這些更改。 – Steve