在 Django 模板中看不到 Django 模型对象
Django Model Objects cannot seen in Django Template
呈现的 Django 模型对象无法在模板中给出任何输出。我的代码是:
model.py:
class MyModel(models.Model):
address = models.GenericIPAddressField(
max_length=15,
verbose_name=_('address')
)
Path = models.CharField(
max_length=300,
verbose_name='path',
)
activate = models.CharField(max_length=5, default='off', )
views.py:
class MyView(ListView):
model = models.MyModel.objects.all()[0]
template_name = '../on_off.html'
context_object_name = 'obj_list'
admin.py:
class MyAdmin(admin.ModelAdmin):
list_display = ('address', 'Path', )
exclude = ('activate', )
change_list_template = '../on_off.html'
on_off.html:
{% extends 'admin/change_list.html' %}
{% block object-tools %}
{% if obj_list %}
<form id="on_off_status" method="POST">
<label id="onoff" class="switch">
{% csrf_token %}
<input type="checkbox" id="togBtn" value=" {{ obj_list.activate }} ">
<div class="slider round"></div>
</label>
</form>
{% endif %}
...
在 Django 模型中,系统只接受一个对象,我想使用 MyModel 模型中的激活字段给模板中的切换开关按钮值。但是它没有在模板中呈现,即使我尝试 <h1> {{ obj_list }} </h1>
我也无法获得任何对象数据,它变成了 <h1> </h1>
。任何帮助或建议表示赞赏。
手动渲染字段
<label id="onoff" class="switch">
{% csrf_token %}
{{ obj_list.activate }}
<div class="slider round"></div>
</label>
不使用 views.py,django-admin 提供一个名为 changelist_view()
的函数。现在它正在运行,我删除了 views.py 中的函数,并将 changelist_view()
函数添加到我的 admin.py 中,如下所示:
class MyAdmin(admin.ModelAdmin):
list_display = ('address', 'Path',)
exclude = ('activate',)
change_list_template = '../nfs_on_off.html'
def changelist_view(self, request, extra_context=None):
object = self.model.objects.all()
context={
'obj_list': object,
}
return super(MyAdmin, self).changelist_view(request, context)
呈现的 Django 模型对象无法在模板中给出任何输出。我的代码是:
model.py:
class MyModel(models.Model):
address = models.GenericIPAddressField(
max_length=15,
verbose_name=_('address')
)
Path = models.CharField(
max_length=300,
verbose_name='path',
)
activate = models.CharField(max_length=5, default='off', )
views.py:
class MyView(ListView):
model = models.MyModel.objects.all()[0]
template_name = '../on_off.html'
context_object_name = 'obj_list'
admin.py:
class MyAdmin(admin.ModelAdmin):
list_display = ('address', 'Path', )
exclude = ('activate', )
change_list_template = '../on_off.html'
on_off.html:
{% extends 'admin/change_list.html' %}
{% block object-tools %}
{% if obj_list %}
<form id="on_off_status" method="POST">
<label id="onoff" class="switch">
{% csrf_token %}
<input type="checkbox" id="togBtn" value=" {{ obj_list.activate }} ">
<div class="slider round"></div>
</label>
</form>
{% endif %}
...
在 Django 模型中,系统只接受一个对象,我想使用 MyModel 模型中的激活字段给模板中的切换开关按钮值。但是它没有在模板中呈现,即使我尝试 <h1> {{ obj_list }} </h1>
我也无法获得任何对象数据,它变成了 <h1> </h1>
。任何帮助或建议表示赞赏。
手动渲染字段
<label id="onoff" class="switch">
{% csrf_token %}
{{ obj_list.activate }}
<div class="slider round"></div>
</label>
不使用 views.py,django-admin 提供一个名为 changelist_view()
的函数。现在它正在运行,我删除了 views.py 中的函数,并将 changelist_view()
函数添加到我的 admin.py 中,如下所示:
class MyAdmin(admin.ModelAdmin):
list_display = ('address', 'Path',)
exclude = ('activate',)
change_list_template = '../nfs_on_off.html'
def changelist_view(self, request, extra_context=None):
object = self.model.objects.all()
context={
'obj_list': object,
}
return super(MyAdmin, self).changelist_view(request, context)