【发布时间】:2016-06-05 22:16:58
【问题描述】:
我是这个论坛和 django 的新手。 我使用的是 Python 2.7 环境。
我有以下models.py:
class Categoria(models.Model):
DEFAULT_CATHEGORY = 0
nome = models.CharField(max_length=255, null=False, default='0')
def __unicode__(self):
return self.nome
class Produto(models.Model):
nome = models.CharField(max_length=255, null=False)
pontos_na_compra = models.DecimalField(decimal_places=4, max_digits=10, default=0)
pontos_na_troca = models.DecimalField(decimal_places=4, max_digits=10, default=0)
foto = models.ImageField(upload_to=get_image_path, blank=True, null=True)
categoria = models.ForeignKey(
Categoria,
default=Categoria.DEFAULT_CATHEGORY
)
def __unicode__(self):
return "%s, %s" % (self.nome, self.codigo_depara)
我想要这种关系:每个类别(cathegory)都有很多 Produto(产品)。在模型中是否正确? 我在 views.py 上没有任何与之相关的内容。
我想在 HTML 文件中做一些这样的代码:
show CATEGORIA.nome
for each PRODUTO in LIST OF PRODUCTS IN CATEGORIA do:
show PRODUTO.nome
show PRODUTO.pontos_na_compra
show PRODUTO.foto
end-for
我尝试使用
{% if categorias %}
<ul id="flexisel">
{% for categoria in produto.categoria_set() %}
<li>
# SHOW ALL HERE. HOW?
</li>
{% endfor %}
</ul>
{% else %}
<p id="flexise">
Nenhum produto encontrado!
</p>
{% endif %}
但是它没有找到 categoria_set() 方法并返回这个:
无法解析余数:来自“produto.categoria_set()”的“()”
请求方法:GET 请求网址:http://127.0.0.1:8000/ Django 版本:1.9.2 异常类型:TemplateSyntaxError 异常值:
无法解析余数:来自“produto.categoria_set()”的“()”
异常位置:/home/dsbonafe/.virtualenvs/bruno/local/lib/python2.7/site-packages/django/template/base.py 在解析中,第 516 行 Python 可执行文件:/home/dsbonafe/.virtualenvs/bruno/bin/python Python版本:2.7.6 Python 路径:
['/home/dsbonafe/Documentos/Projetos/Bruno Mercado/bruno/redewebsite', '/home/dsbonafe/.virtualenvs/bruno/lib/python2.7', '/home/dsbonafe/.virtualenvs/bruno/lib/python2.7/plat-x86_64-linux-gnu', '/home/dsbonafe/.virtualenvs/bruno/lib/python2.7/lib-tk', '/home/dsbonafe/.virtualenvs/bruno/lib/python2.7/lib-old', '/home/dsbonafe/.virtualenvs/bruno/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/home/dsbonafe/.virtualenvs/bruno/local/lib/python2.7/site-packages', '/home/dsbonafe/.virtualenvs/bruno/lib/python2.7/site-packages']
服务器时间:Ter, 23 Fev 2016 20:55:39 +0000
有人可以帮助我吗?
非常感谢。
【问题讨论】:
-
我误读了你的问题。你似乎自相矛盾。在您的解释中,您说您希望一个类别拥有许多产品。在您的模板代码中,您进行查找:
produto.categoria_set。那是相反的。你打算哪一个?你的模板代码错了吗?我可以更新我的答案。 -
其实我还没有看懂categoria_set。下面的答案,告诉我发生了什么。
标签: html django python-2.7 models