【问题标题】:How can i call the fields of a foreignkey in the template html django如何在模板 html django 中调用外键的字段
【发布时间】:2021-01-24 13:09:09
【问题描述】:

如何将 model.py 中 MovieDetail 类中的 movie_details 和 actor 字段或变量调用到我的 html 模板中。非常感谢,我是 django 的新手,我会喜欢这里的解决方案。

模型.py

from django.db import models
from datetime import datetime
# Create your models here.

class MoviePosters(models.Model):
    image = models.ImageField(upload_to = "pics")
    Title = models.CharField(max_length=50)
    Description = models.CharField(max_length = 150)


class MovieSection(models.Model):
    image_side = models.ImageField(upload_to = "pics")
    title_side = models.CharField(max_length=50)
    movie_link = models.CharField(max_length=20)

    class meta:
        verbose_name_plural = "Section"

    def __str__(self):
        return self.title_side


class MovieDetails(models.Model):
    movie_section = models.ForeignKey(MovieSection, on_delete= models.CASCADE)
    movie_details = models.CharField(max_length= 200)
    actors = models.CharField(max_length= 200)

    class meta:
        verbose_name_plural = "movie_details"

    def __str__(self):
        return self.movie_details

Views.py

from django.shortcuts import render
from django.http import Http404
from django.http import HttpResponse
from .models import MoviePosters, MovieSection,Ticket, MovieDetails

def single_link(request, single_link):
    movie_details = MovieSection.objects.get(pk=single_link)   
    return render(request, "reviewmovie.html", {"part_ones": movie_details})
    

【问题讨论】:

    标签: python django templates model jinja2


    【解决方案1】:

    设置相关名称选项(related_name='moviesection'):

        movie_section = models.ForeignKey(MovieSection, on_delete= models.CASCADE, related_name='moviesection')
    

    然后您将能够通过以下方式访问 MovieDetails:

    movie_details.moviesection.all()
    

    另外,在您的 single_link 函数中重命名 movie_details,因为它的名称与模型中的名称相同,可能会导致混淆。

    【讨论】:

      【解决方案2】:

      您似乎有兴趣从 MovieDetails 模型中获取数据,因此请考虑运行一个查询来过滤您在该模型中查找的内容。比如:

      movie_details = MovieDetails.objects.get(movie_section__pk=single_link)

      【讨论】:

      • 是的,它奏效了。如果你推荐书籍或 YouTube 视频让我了解更多信息并成为更好的 Django 开发人员,我会很高兴
      猜你喜欢
      • 2019-07-31
      • 2021-03-20
      • 2021-02-23
      • 2016-04-18
      • 1970-01-01
      • 2013-11-19
      • 2020-04-25
      • 2020-08-01
      • 1970-01-01
      相关资源
      最近更新 更多