Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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 如何在同一模板中传递另一个模型的listview和另一个模型的detailview_Python_Django_Django Forms_Django Views_Django Templates - Fatal编程技术网

Python 如何在同一模板中传递另一个模型的listview和另一个模型的detailview

Python 如何在同一模板中传递另一个模型的listview和另一个模型的detailview,python,django,django-forms,django-views,django-templates,Python,Django,Django Forms,Django Views,Django Templates,我想使用基于类的视图在同一模板中传递post模型的listview和movies模型的detailview views.py 要从URL中传递的电影的pk打印模型电影的详细视图吗 我通过url传递了电影名称和pk,但无法获得其他细节,如我们从pk获得的detailview url.py post_list.html 这里我想介绍一下电影的细节和帖子的细节 <!DOCTYPE html> <html lang="en"> <head>

我想使用基于类的视图在同一模板中传递post模型的listview和movies模型的detailview

views.py 要从URL中传递的电影的pk打印模型电影的详细视图吗

我通过url传递了电影名称和pk,但无法获得其他细节,如我们从pk获得的detailview

url.py post_list.html 这里我想介绍一下电影的细节和帖子的细节

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">

    <meta name="keywords" content="footer, address, phone, icons" />

<meta name='viewport' content='width=device-width, initial-scale=1'>
<script src='https://kit.fontawesome.com/a076d05399.js'></script>

    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css">
    <link href="http://fonts.googleapis.com/css?family=Cookie" rel="stylesheet" type="text/css">
    <link rel="stylesheet" href="style.css">


    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">


    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

<meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>

 <header class="site-header">
      <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
        <div class="container">
            <a class="navbar-brand mr-4" href="{% url 'blog-home' %}"><p style="font: normal 36px 'Cookie', cursive;margin:0px;">Axon <span style="color:#5383d3;">Blog</span></p></a>
          <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggle" aria-controls="navbarToggle" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
          </button>
          <div class="collapse navbar-collapse" id="navbarToggle">
            <div class="navbar-nav mr-auto">
              <a class="nav-item nav-link" href="{% url 'blog-home' %}"><i class="fa fa-fw fa-home" style="font-size:18px;"></i> Home</a>
              <a class="nav-item nav-link" href="{% url 'blog-about' %}"><img src="https://img.icons8.com/ios/20/000000/about.png"/> About</a>
            </div>
            <!-- Navbar Right Side -->
            <div class="navbar-nav">
                {% if user.is_authenticated %}

                 <a class="nav-item nav-link" href="{% url 'profile' %}"><i class="fas fa-user-alt" style="font-size:18px;"></i> {{ user.username }}</a>
                 <a class="nav-item nav-link" href="{% url 'logout' %}"><i class="fa fa-fw fa-sign-out" style="font-size:16px;"></i> Logout</a>
                {% else %}
                 <a class="nav-item nav-link" href="{% url 'login' %}"><i class="fas fa-sign-in-alt" ></i> Login</a>
                <a class="nav-item nav-link" href="{% url 'register' %}"><i class="fas fa-user-plus" style="font-size:14px;"></i> Register</a>
                {% endif %}
             </div>
          </div>
        </div>
      </nav>

    </header>

 </body>





<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<h1 class="mb-3">Reviews of {{ view.kwargs.name }} ({{ page_obj.paginator.count }})</h1>


<a href="{% url 'post-create'  view.kwargs.name view.kwargs.pk %} "><button class="btn"><i class="fa fa-plus"></i> Add Review</button></a>

<br><br>
{{ object.post_set.all }}
    {% for post in posts %}
        <article class="media content-section">
            <img class="rounded-circle article-img"  src="{{ post.author.profile.image.url }}">
          <div class="media-body">
            <div class="article-metadata">
              <a class="mr-2" href="{% url 'user-post' post.author.username %}">{{ post.author }}</a>
              <small class="text-muted">{{ post.date_posted|date:"F d, Y " }}</small>
            </div>
              <h3><a class="article-title">{{ post.name }}</a></h3>
            <h2><a class="article-title" href="{% url 'post-detail' post.id %}">{{ post.title }}</a></h2>

            <p class="article-content">{{ post.content }}</p>
          </div>
        </article>
    {% endfor %}
    {% if is_paginated %}
        {% if page_obj.has_previous %}
              <a class ="btn btn-outline-info mb-4" href="?page=1">First</a>
              <a class ="btn btn-outline-info mb-4" href="?page={{ page_obj.previous_page_number }}">Previous</a>
        {% endif %}

        {% for num in page_obj.paginator.page_range %}
            {% if page_obj.number == num %}
              <a class ="btn btn-info mb-4" href="?page={{ num }}">{{ num }}</a>
                {% elif num > page_obj.number|add:'-3' and num < page_obj.number|add:'3' %}
              <a class ="btn btn-outline-info mb-4" href="?page={{ num }}">{{ num }}</a>
            {% endif %}
        {% endfor %}

        {% if page_obj.has_next %}
              <a class ="btn btn-outline-info mb-4" href="?page={{ page_obj.next_page_number }}">Next</a>
              <a class ="btn btn-outline-info mb-4" href="?page={{ page_obj.paginator.num_pages }}">Last</a>
        {% endif %}


    {% endif %}




</style>
</html>

{%if user.u经过身份验证%}
{%else%}
{%endif%}
对{{view.kwargs.name}{{{page_obj.paginator.count}}的审查


{{object.post_set.all} {posts%%中的post为%s} {{发布日期{发布日期:“F d,Y”}

{{post.content}

{%endfor%} {%if已分页%} {%如果页面_obj.has_previous%} {%endif%} {page_obj.paginator.page_range%} {%if page_obj.number==num%} {%elif num>page_obj.number | add:'-3'和num
在上下文中添加模型详细信息,以便在模板中提供它们,如:

...
def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    movie = get_object_or_404(Movies, pk=self.kwargs.get('pk'))
    context["movie"] = movie

URL.py是什么样子的?它在MoviesDetailListView中传递带有名称和pk的URL从模板中如何访问电影详细信息和发布模型列表现在它没有显示任何内容您的模型是如何定义的?很抱歉,我是新来的,您能找出模板的问题吗?您可以访问所有使用:
object.post\u set.all发布,以及如何访问电影的详细信息
from django.db import models
from django.contrib.contenttypes.fields import GenericForeignKey
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
from PIL import Image


class Movies(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=100)
    producer = models.CharField(max_length=100)
    director = models.CharField(max_length=100)
    date_released = models.DateTimeField(default=timezone.now)
    image = models.ImageField(default='default.jpg', upload_to='profile_pics')

    class Meta:
        verbose_name_plural = "Movies"

    def __str__(self):
        return self.name


def get_id():
    return


class Post(models.Model):

    title = models.CharField(max_length=100)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    name = models.ForeignKey(Movies, on_delete=models.CASCADE,default=1)

    def __str__(self):
        return self.title
    # return reverse('post-detail' , kwargs={'pk':self.pk})

    def get_absolute_url(self):
        return reverse('blog-home')
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">

    <meta name="keywords" content="footer, address, phone, icons" />

<meta name='viewport' content='width=device-width, initial-scale=1'>
<script src='https://kit.fontawesome.com/a076d05399.js'></script>

    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css">
    <link href="http://fonts.googleapis.com/css?family=Cookie" rel="stylesheet" type="text/css">
    <link rel="stylesheet" href="style.css">


    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">


    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

<meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>

 <header class="site-header">
      <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
        <div class="container">
            <a class="navbar-brand mr-4" href="{% url 'blog-home' %}"><p style="font: normal 36px 'Cookie', cursive;margin:0px;">Axon <span style="color:#5383d3;">Blog</span></p></a>
          <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggle" aria-controls="navbarToggle" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
          </button>
          <div class="collapse navbar-collapse" id="navbarToggle">
            <div class="navbar-nav mr-auto">
              <a class="nav-item nav-link" href="{% url 'blog-home' %}"><i class="fa fa-fw fa-home" style="font-size:18px;"></i> Home</a>
              <a class="nav-item nav-link" href="{% url 'blog-about' %}"><img src="https://img.icons8.com/ios/20/000000/about.png"/> About</a>
            </div>
            <!-- Navbar Right Side -->
            <div class="navbar-nav">
                {% if user.is_authenticated %}

                 <a class="nav-item nav-link" href="{% url 'profile' %}"><i class="fas fa-user-alt" style="font-size:18px;"></i> {{ user.username }}</a>
                 <a class="nav-item nav-link" href="{% url 'logout' %}"><i class="fa fa-fw fa-sign-out" style="font-size:16px;"></i> Logout</a>
                {% else %}
                 <a class="nav-item nav-link" href="{% url 'login' %}"><i class="fas fa-sign-in-alt" ></i> Login</a>
                <a class="nav-item nav-link" href="{% url 'register' %}"><i class="fas fa-user-plus" style="font-size:14px;"></i> Register</a>
                {% endif %}
             </div>
          </div>
        </div>
      </nav>

    </header>

 </body>





<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<h1 class="mb-3">Reviews of {{ view.kwargs.name }} ({{ page_obj.paginator.count }})</h1>


<a href="{% url 'post-create'  view.kwargs.name view.kwargs.pk %} "><button class="btn"><i class="fa fa-plus"></i> Add Review</button></a>

<br><br>
{{ object.post_set.all }}
    {% for post in posts %}
        <article class="media content-section">
            <img class="rounded-circle article-img"  src="{{ post.author.profile.image.url }}">
          <div class="media-body">
            <div class="article-metadata">
              <a class="mr-2" href="{% url 'user-post' post.author.username %}">{{ post.author }}</a>
              <small class="text-muted">{{ post.date_posted|date:"F d, Y " }}</small>
            </div>
              <h3><a class="article-title">{{ post.name }}</a></h3>
            <h2><a class="article-title" href="{% url 'post-detail' post.id %}">{{ post.title }}</a></h2>

            <p class="article-content">{{ post.content }}</p>
          </div>
        </article>
    {% endfor %}
    {% if is_paginated %}
        {% if page_obj.has_previous %}
              <a class ="btn btn-outline-info mb-4" href="?page=1">First</a>
              <a class ="btn btn-outline-info mb-4" href="?page={{ page_obj.previous_page_number }}">Previous</a>
        {% endif %}

        {% for num in page_obj.paginator.page_range %}
            {% if page_obj.number == num %}
              <a class ="btn btn-info mb-4" href="?page={{ num }}">{{ num }}</a>
                {% elif num > page_obj.number|add:'-3' and num < page_obj.number|add:'3' %}
              <a class ="btn btn-outline-info mb-4" href="?page={{ num }}">{{ num }}</a>
            {% endif %}
        {% endfor %}

        {% if page_obj.has_next %}
              <a class ="btn btn-outline-info mb-4" href="?page={{ page_obj.next_page_number }}">Next</a>
              <a class ="btn btn-outline-info mb-4" href="?page={{ page_obj.paginator.num_pages }}">Last</a>
        {% endif %}


    {% endif %}




</style>
</html>
...
def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    movie = get_object_or_404(Movies, pk=self.kwargs.get('pk'))
    context["movie"] = movie