Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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 Django-如何在模型中使用ManyToManyField创建动态模板_Python_Django_Many To Many - Fatal编程技术网

Python Django-如何在模型中使用ManyToManyField创建动态模板

Python Django-如何在模型中使用ManyToManyField创建动态模板,python,django,many-to-many,Python,Django,Many To Many,我是Django的新手。我试图找出如何将MyModel(manytomany)的tags属性获取到MyModel中每个对象的模板(mytemplate.html)上。注意:标签管理中有4个可能的标签。MyModel中的一些对象有2个标记,一些对象有1个。如何在模板上获得每个对象的唯一标记选择?这是我的档案: 型号.py class Tag(models.Model): CATEGORY_CHOICES = ( ('dataset', 'dataset'),

我是Django的新手。我试图找出如何将MyModel(manytomany)的tags属性获取到MyModel中每个对象的模板(mytemplate.html)上。注意:标签管理中有4个可能的标签。MyModel中的一些对象有2个标记,一些对象有1个。如何在模板上获得每个对象的唯一标记选择?这是我的档案:

型号.py

class Tag(models.Model):
    CATEGORY_CHOICES = (
        ('dataset', 'dataset'),
        ('brand', 'brand'),
    )
    tag = models.CharField(max_length=100)
    category = models.CharField(max_length=100, choices=CATEGORY_CHOICES)

class MyModel(models.Model):
    id = models.CharField(max_length=30, primary_key=True)
    publish_date = models.DateField()
    tags = models.ManyToManyField(Tag)
from .models import MyModel, Tag

def index(request):

    tags = Tag.objects.all()

    infos = MyModel.objects.all().order_by('publish_date').reverse()

    return render(request, 'mytemplate.html', {'infos': infos, 'tags':tags})
视图.py

class Tag(models.Model):
    CATEGORY_CHOICES = (
        ('dataset', 'dataset'),
        ('brand', 'brand'),
    )
    tag = models.CharField(max_length=100)
    category = models.CharField(max_length=100, choices=CATEGORY_CHOICES)

class MyModel(models.Model):
    id = models.CharField(max_length=30, primary_key=True)
    publish_date = models.DateField()
    tags = models.ManyToManyField(Tag)
from .models import MyModel, Tag

def index(request):

    tags = Tag.objects.all()

    infos = MyModel.objects.all().order_by('publish_date').reverse()

    return render(request, 'mytemplate.html', {'infos': infos, 'tags':tags})
mytemplate.html

现在,这只创建了4个p元素-一个用于所有4个可能的“标记”

{% for info in infos %}
    <small>{{info.publish_date}}</small>
    {% for tag in tags %}
        <p>{{tag.tag}}</p>
    {% endfor %}
{% endfor %}
{%for infos%中的信息]
{{info.publish{u date}
{标记%中的标记的%s}
{{tag.tag}

{%endfor%} {%endfor%}
尝试以下操作

{% for info in infos %}
    <small>{{info.publish_date}}</small>
    {% for tag in info.tags.all %}
        <p>{{tag.tag}}</p>
    {% endfor %}
{% endfor %}
{%for infos%中的信息]
{{info.publish{u date}
{info.tags.all%中标记的%s}
{{tag.tag}

{%endfor%} {%endfor%}