Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过DetailView类呈现ForeignKey字段中的信息?_Python_Python 3.x_Django_Django Views_Django Templates - Fatal编程技术网

Python 如何通过DetailView类呈现ForeignKey字段中的信息?

Python 如何通过DetailView类呈现ForeignKey字段中的信息?,python,python-3.x,django,django-views,django-templates,Python,Python 3.x,Django,Django Views,Django Templates,我有两个模型(分类法和分布式),它们是: # models.py file class Taxonomia(models.Model): id_cactacea = models.AutoField(primary_key=True) subfamilia = models.CharField(max_length=200) class Distribucion(models.Model): id_distribucion = models.AutoField(pr

我有两个模型(分类法和分布式),它们是:

# models.py file

class Taxonomia(models.Model): 
    id_cactacea = models.AutoField(primary_key=True)
    subfamilia = models.CharField(max_length=200)

class Distribucion(models.Model):
    id_distribucion = models.AutoField(primary_key=True)
    localidad = models.TextField(null=True, blank=True)
    taxonomia = models.ForeignKey(Taxonomia, on_delete=models.CASCADE, default=1)
正如您在Distribution中看到的,Taxomia表与一对多的关系

在“admin.py”文件中实现这两个模型,以便可以从Taxonomia编辑Distribution表

class DistribucionInline(admin.TabularInline):
    model = Distribucion
    extra = 0

class TaxonomiaAdmin(admin.ModelAdmin):
    actions = None # desactivando accion de 'eliminar'
    list_per_page = 20
    search_fields = ('genero',)
    radio_fields = {"estado_conservacion": admin.HORIZONTAL}
    inlines = [DistribucionInline]

admin.site.register(Taxonomia, TaxonomiaAdmin)
文件“view.py”依次呈现分类表,如下所示:

from repositorio.models import Taxonomia, Distribucion

class CactaceaDetail(DetailView):
    model = Taxonomia
    template_name = 'repositorio/cactacea_detail.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['distribuciones'] = Distribucion.objects.all()
        return context
我试图按如下方式从模板访问上下文['Distributiones']信息,但没有得到任何结果:

{% for obj in object.distribuciones %}
    {{ obj.localidad }}
{% endfor %}
OBS:对于每个Taxonomia元素,Distribution表中将有四个元素,因此我需要使用For循环

我在“CactaceaDetail”视图中添加分类表信息的方式正确吗?

我读取模板中信息的方式正确吗?

如何使用DJANGO shell可视化“CactaceaDetail”发送到模板的所有信息,以便将来更好地调试?

谢谢。

尝试从模板中的for循环中删除“对象”:

{% for obj in distribuciones %}
    {{ obj.localidad }}
{% endfor %}
原因是您在常规上下文中传递
分发节点
,而不是作为类
对象
的一部分,因此无法将其引用到
对象。分发节点

请尝试从模板中的for循环中删除“对象”:

{% for obj in distribuciones %}
    {{ obj.localidad }}
{% endfor %}
原因是您在常规上下文中传递
分发单元
,而不是作为类
对象
的一部分,因此无法使用
对象引用它。分发单元