我有一个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