模板中的Django 2表在模板中“for”

时间:2018-02-13 11:44:02

标签: django

I try to make a simple illustration of my question click to view

我有一个测验任务。

我尝试解决问题: 通过“Metrix”模型在周期中取项目,我得到了测验问题

使用“Metrix”模型中的{%for item in metrix_list%}循环时,无法从“User_metrix”模型获取数据。

我的模特:

from django.db import models
from django.conf import settings


class Metrix(models.Model):
    title = models.CharField(max_length=256, verbose_name='Question')
    metrix_category = models.ForeignKey(
        'category',
        related_name='Question_category',
        on_delete=models.CASCADE,
        verbose_name='Category',
    )
    is_published = models.BooleanField(default=False)
    def __str__(self):
        return self.title

class Category(models.Model):
    title = models.CharField(max_length=256, 
        verbose_name='Question_category')
    is_published = models.BooleanField(default=False)
    def __str__(self):
        return self.title

class User_metrix(models.Model):
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL, 
        on_delete=models.CASCADE, 
        related_name="user_metrix", 
        verbose_name='User')
    metrix = models.ForeignKey('Metrix', on_delete=models.CASCADE, 
        verbose_name='Question')
    value = models.DecimalField(max_digits=12, decimal_places=2, 
        verbose_name='Value')

我的观点:

from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from metrix.models import Metrix, User_metrix

@login_required
def metrix_view(request, pk=None):
    metrix_category = {
        'pk': 4
    }

    #Get questions by category
    metrix_list = Metrix.objects.filter(is_published=True,  
         metrix_category__pk=pk)

    context = {
        'metrix_list': metrix_list
    }    
    return render(request, 'metrix/metrix.html', context)

模板: 我在模板中列出问题,循环“metrix_list” 如何保存值的答案,如果答案存在,则返回模板的值?

            <!--cycle for metrix-->
            {% for item in metrix_list %}

            <div class="row metrix_quiestion_line justify-content-center">
                <div class="metrix_quiestion">
                    <h2>
                    {{ item }}
                    </h2>
                </div>
                <div class="metrix_value">
                    <input type="number" name="{{ item.id }}" value=" ">
                </div>
            </div>

            {% endfor %}

            <!--END cycle -->

0 个答案:

没有答案