我是一个简单的模特
class Task(models.Model):
author = models.ForeignKey('auth.User', on_delete=models.PROTECT, related_name='+')
name_task = models.CharField(max_length=1000)
label_task = models.ManyToManyField(LabelTask)
executive_man = models.ManyToManyField(User)
但是在模板中,无法呈现所有数据,例如,来自视图的代码看起来像
def task_detail(request, pk):
task = get_object_or_404(Task, pk=pk)
return render(request, 'task/task_detail.html', {'task': task})
模板看起来像
<small>{{ task.author }}</small>
<h1>{{ task.name_task }}</h1>
<p>Label - {{ task.label_task }}</p>
<p>Executive - {{ task.executive_man }}</p>
但所有数据都显示良好,但标签 - task.LabelTask.None
执行 - auth.User.None
我不对
标签 - 而不是数据是task.LabelTask.None
执行 - 而是选择用户 - auth.User.None
但在我的管理员看来一切都很好。
希望你帮帮我
非常感谢你。
答案 0 :(得分:1)
这是因为这些字段是ManyToManyField
,
要访问它们,您需要在模板中使用all
,在python代码中使用all()
p>Label - {{ task.label_task.all }}</p>
<p>Executive - {{ task.executive_man.all }}</p>
或者你可以循环使用它们
p>Label -
{% for label in task.label_task.all %}
{{label}} {% if not forloop.last %},{% endif %}
{% empty %}
No label tasks
{% endfor%}</p>
<p>Executive - {% for man in task.executive_man.all %}
{{man}} {% if not forloop.last %},{% endif %}
{% empty %}
No Men
{% endfor%}</p>