Python Django中的简单Foreingkey
我是Django的begginer 我的数据库中有一个名为“produto”的表,每个产品都属于一个组,我想在显示产品数据的同一个“for”中显示该组的名称 models.pyPython Django中的简单Foreingkey,python,django,foreign-keys,django-queryset,many-to-one,Python,Django,Foreign Keys,Django Queryset,Many To One,我是Django的begginer 我的数据库中有一个名为“produto”的表,每个产品都属于一个组,我想在显示产品数据的同一个“for”中显示该组的名称 models.py from django.db import models # Create your models here. class Grupo(models.Model): codigo = models.AutoField(primary_key=True) nome = models.CharField(m
from django.db import models
# Create your models here.
class Grupo(models.Model):
codigo = models.AutoField(primary_key=True)
nome = models.CharField(max_length=40, blank=True, null=True)
tp_linha = models.IntegerField()
data_alt = models.DateField(blank=True, null=True)
data_inc = models.DateField(blank=True, null=True)
status = models.CharField(max_length=1)
class Meta:
managed = False
db_table = 'grupo'
class Produto(models.Model):
codigo = models.AutoField(primary_key=True)
nome = models.CharField(max_length=80)
referencia = models.CharField(max_length=30)
fabricante = models.IntegerField()
quantidade = models.DecimalField(max_digits=17, decimal_places=6)
preco_venda = models.DecimalField(max_digits=15, decimal_places=2, blank=True, null=True)
#...
grupo_produto = models.ForeignKey(Grupo, related_name='grupo')
def __str__(self):
return self.nome
class Meta:
managed = False
db_table = 'produto'
views.py
from django.shortcuts import render_to_response
from django.shortcuts import render
from .models import Servico, Produto, Grupo
# Create your views here.
def home(request):
servicos = Servico.objects.using('mydatabase').all()
produtos = Produto.objects.using('mydatabase').all()
grupos = Grupo.objects.using('mydatabase').all()
return render(request, 'home.html', {'servicos': servicos, 'produtos': produtos, 'grupos': grupos})
home.html
{% for Produto in produtos %}
<tr>
<td>{{Produto.codigo}}</td>
<td>{{Produto.nome}}</td>
<td>{{Produto.referencia}}</td>
<td>{{Produto.fabricante}}</td>
<td>{{Produto.quantidade}}</td>
<td>R$ {{Produto.preco_venda}}</td>
<td>{{Grupo.nome}}</td>
</tr>
{% empty %}
<span>Nenhum resultado encontrado</span>
{% endfor %}
我在这里迷路了,已经出现了一些错误,但我不知道该怎么办
//更新
我决定走这条路
from django.shortcuts import render_to_response
from django.shortcuts import render
from .models import Grupo, Produto
# Create your views here.
def home(request):
produtos = Produto.objects.using('horus').raw('SELECT produto.codigo, produto.nome, produto.quantidade, produto.preco_venda, grupo.nome AS nome_grupo FROM produto LEFT JOIN grupo on (produto.grupo = grupo.codigo);');
return render(request, 'home.html', {'produtos': produtos})
{% for Produto in produtos %}
<tr>
<td>{{Produto.codigo}}</td>
<td>{{Produto.nome}}</td>
<td>{{Produto.quantidade}}</td>
<td>R$ {{Produto.preco_venda}}</td>
<td>{{Produto.nome_grupo}}</td>
</tr>
{% empty %}
<span>Nenhum resultado encontrado</span>
{% endfor %}
我不知道是否做对了,我想要一些提示。尝试使用
{{Produto.grupo_Produto.nome}
这有用吗
如果那没用,试试看
{{Produto.grupo.nome}
它可能只是您的相关名称。尝试使用
{{Produto.grupo_Produto.nome}
这有用吗
如果那没用,试试看
{{Produto.grupo.nome}
它可能只是您的相关名称。根据您的模型,它应该是{{Produto.grupo_Produto.nome}},因此如果这不起作用,问题就在别处 1054,“字段列表”中的未知列“produto.grupo_produto_id” 这表明您的DB没有grupo_produto=ForeignKey。。。字段,检查您的数据库和数据库迁移,这就是您的问题所在 附言: 无需尝试{{Produto.grupo.nome}}相关的_name='grupo'用于从属于组的grupo对象产品访问Produto对象 应该被命名为related_name='produtos'真的,那样的话 您可以使用grupo.produtos,这很有意义
你命名related_name='grupo'的方式是grupo.grupo,它没有任何意义,坏名字根据你的模型,它应该是{{Produto.grupo_Produto.nome}},所以如果这不起作用,问题就在别处 1054,“字段列表”中的未知列“produto.grupo_produto_id” 这表明您的DB没有grupo_produto=ForeignKey。。。字段,检查您的数据库和数据库迁移,这就是您的问题所在 附言: 无需尝试{{Produto.grupo.nome}}相关的_name='grupo'用于从属于组的grupo对象产品访问Produto对象 应该被命名为related_name='produtos'真的,那样的话 您可以使用grupo.produtos,这很有意义
您命名related_name='grupo'的方式是grupo.grupo,这没有任何意义。坏名称此外,如果您有错误,请提供您收到的错误的堆栈跟踪->我想在显示产品数据的同一“for”中显示该组的名称。这意味着什么?你发现问题了吗?是的,在我的数据库中,表之间没有连接,那么,我已经输入了SQL代码。另外,如果你有错误,请提供你收到的错误的堆栈跟踪->我想在显示产品数据的同一个“for”中显示该组的名称。这是什么意思?你发现问题了吗?是的,在我的数据库中,表之间没有连接,那么,我已经输入了SQL代码。我尝试了此操作,但显示了以下消息:1054,“字段列表”中的未知列“produto.grupo_produto_id”。你可以将堆栈跟踪和跟踪放回post pls中吗?对不起,表结构中不存在fk。请重试{{Produto.grupo.nome}我尝试了这个,但显示了以下消息:1054,“字段列表”中的未知列“Produto.grupo_Produto_id”。你能把堆栈跟踪和跟踪放回post吗?对不起,fk在表结构中不存在。试试{Produto.grupo.nome}