Python 在Django中显示许多字段和外来字段的内容

Python 在Django中显示许多字段和外来字段的内容,python,django,django-templates,django-views,Python,Django,Django Templates,Django Views,我是Django的新手,我正在构建一个基本的博客应用程序。 我无法在我的详细信息页面中显示多个字段(标记中)和一个外键字段(注释) models.py class BlogContent(models.Model): title = models.CharField(max_length=200) author = models.CharField(max_length=200) content = models.TextField() date_publishe

我是Django的新手,我正在构建一个基本的博客应用程序。 我无法在我的详细信息页面中显示多个字段(标记中)和一个外键字段(注释)

models.py

class BlogContent(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=200)
    content = models.TextField()
    date_published = models.DateField(auto_now=True)
    image = models.ImageField(upload_to='media/')

    def __str__(self):
        return self.title


class TagName(models.Model):
    tag = models.ManyToManyField(BlogContent, null=True)
    name = models.CharField(max_length=100, blank=True, null=True)

    def __str__(self):
        return self.name


class Comment(models.Model):
    comt_text = models.TextField()
    comments = models.ForeignKey(BlogContent, on_delete=models.CASCADE)
    date_published = models.DateField(auto_now=True)
    name = models.CharField(max_length=200, blank=True, null=True)

    def __str__(self):
        return self.name
views.py

def details(request, blogcontent_id):
    data_blog = get_object_or_404(BlogContent, pk=blogcontent_id)
    data_tag = get_object_or_404(TagName, pk=blogcontent_id)
    data_comment = Comment.objects.select_related()

    return render(request, 'details.html',
              {'data_blog': data_blog, 'data_tag':data_tag, 'data_comment':data_comment})
details.html

{% extends 'base.html' %}
{% block body_base %}
 <img class="card-img-top img-responsive" src={{ data_blog.image.url }} alt="Card image cap">
        <h2 class="blog-post-title">{{ data_blog.title }}</h2>
        <p class="blog-post-meta">{{ data_blog.date_published }} {{ data_blog.author }}</p>

        <p>{{ data_blog.content }}</p>
{% endblock %}
{%extends'base.html%}
{%block body_base%}
{{data_blog.title}

{{data_blog.date_published}{{data_blog.author}

{{data_blog.content}

{%endblock%}

在此之后,如何显示foreignkey和ManayTo多个域?

TBH如果使用基于类的视图,这将更容易

这种观点只会是:

class BlogContentDetail (DetailView):
    model = BlogContent
url调用将是
url(r'^blog detail/(?p\d+)/$,BlogContentDetail.as\u view(),name=“blog\u detail”)

您的html文件应称为
blogcontent\u detail.html
,并保存在templates文件夹的app子文件夹中

然后,模板将是:

{% extends 'base.html' %}
{% block body_base %}
 <img class="card-img-top img-responsive" src={{ object.image.url }} alt="Card image cap">
        <h2 class="blog-post-title">{{ object.title }}</h2>
        <p class="blog-post-meta">{{ object.date_published }} {{ object.author }}</p>

        <p>{{ object.content }}</p>
       {% for tag in object.tags_set.all %}{{ tag }}{% endfor %}
{% endblock %}
{%extends'base.html%}
{%block body_base%}
{{object.title}}

{{object.date_published}{{{object.author}}

{{object.content}

{%for object.tags_set.all%}{{tag}}{%endfor%} {%endblock%}
您可以用这种方式迭代多个字段

{%用于数据中的标记\u tag.tag.all%}
{{tags}
{%endfor%}

外键


{{data\u comment.comments}}

不工作。我得到这个错误。“'ManyRelatedManager'对象不可编辑”Try data_tag.tag.all