0

我创建了模板页面并从模型中检索了一个字段的数据,但我没有得到任何字段,并显示模型的类名称,

模板代码:

    {% for abc in events %}
            <div>

                <h2><a href="">{{ abc.event_title }}</a></h2>
                <p>published: {{ abc.event_release_date }}</p>

                <p>{{ abc.event_description|linebreaksbr }}</p> 
 {{% for author in abc.event_author.all %}}
              <p>{{ author }}</p>
          {{% endfor %}}


            </div>
        {% endfor %}

查看代码:

def index(request):
    return render(request, 'polls/home.html', {})





"model class name and function name should not be samm"
def Event(request):
    events=Events.objects.all()
    return render(request, 'polls/events.html', {'events':events})

在此处输入图像描述

型号代码如下:

class Author(models.Model):
    author_name=models.CharField(max_length=300)


    def __str__(self):
        return  self.author_name



class Events(models.Model):
    event_author=models.ManyToManyField(Author)
    event_title=models.CharField(max_length=300)
    event_title_image = models.ImageField(upload_to='images/', blank=True, null=False)
    event_description=models.TextField(blank = True)
    event_image_description = models.ImageField(upload_to='images/', blank=True,)
    event_release_date = models.DateField(null="false")

    def __str__(self):
        return self.event_title

    def publish(self):
        self.event_release_date = timezone.now()
        self.save()

在模板代码中进行了很少的更改

4

1 回答 1

2

event_author 是一个多字段,这意味着 event_author 本身不是可以在模板中显示的东西。您需要像这样循环遍历 manytomany 字段:

{% for author in abc.event_author.all %}
    <p>{{author}}</p>
{% endfor %}

一个完整的例子是:

{% for abc in events %}
    <div>

        <h2><a href="">{{ abc.event_title }}</a></h2>
        <p>published: {{ abc.event_release_date }}</p>

        <p>{{ abc.event_description|linebreaksbr }}</p>
        {% for author in abc.event_author.all %}
             <p>{{author}}</p>
        {% endfor %}

    </div>
{% endfor %}
于 2019-10-16T12:22:39.113 回答