使用 .all() 为我提供主模型中的所有内容 我如何更改它以提供我需要的内容

using .all() gives me everything inside the Primary Model How can i change it to gives what i needed

我有 2 个模型 AlbumPrimary 当我转到相册模板并单击 viewAlbum 模板时,它会向我显示每个学生来自我创建的每个相册,而不是显示我在创建新学生时选择的相册中的唯一学生。

创建相册模板:

        <div class="row">
        <div class="col-md-3">
            <a href="{% url 'post_create' %}">Create Album</a>
        </div>

        <!--Albums-->

        {% for my_album in albums %}
        <div class="col-md-9">
            <div class="card" style="width: 18rem;">
                <img src="{{ my_album.image.url }}" alt="" class="card-img-top">
                <div class="card-body">
                    <p>{{ my_album.name }}</p>
                    <br>
                    <a href="{% url 'view-Album' my_album.pk %}">viewAlbum</a>
                </div>
            </div>
        </div>
        {% endfor %}
    </div>
</div>

viewAlbum 视图:

def viewAlbum(request, pk):
    primaries = Primary.objects.all()

    post = get_object_or_404(Album, id=pk)

    my_album = Album.objects.get(id=pk)
    return render(request, 'viewAlbum.html', {'primaries': primaries, 'post':post, 
    'my_album':my_album})

学生模板:

    <div class="container">
    <div class="row">
        <div class="col">
            <a href="{% url 'students' %}" class="btn btn-primary">Create Students</a>
        </div>
    </div>
</div>
<br>
<div class="container">
    <div class="row justify-content-center">
        {% for prima in primaries %}
        <div class="col">
            <div class="card my-2" style="width: 18rem;">
                <img src="{{ prima.profilePicture.url }}" alt="" class="card-img-top">

                <div class="card-body">
                    <p>{{ prima.firstName }}</p>
                    <br>
                    <a href="{% url 'view-Student' prima.pk %}">view Students</a>
                </div>
            </div>
        </div>
    </div>
    {% endfor %}
</div>

模特:

class Album(models.Model):
    image = models.ImageField(null=False, blank=False)
    name = models.CharField(max_length=100, null=False, blank=False)

    def __str__(self):
        return self.name       

class Primary(models.Model):
    profilePicture = models.ImageField(blank=False, null=False)
    firstName = models.CharField(max_length=25, blank=False, null=False) 
    sureName = models.CharField(max_length=25, blank=False, null=False) 
    lastName = models.CharField(max_length=25, blank=False, null=False)  
    address = models.CharField(max_length=50, blank=False, null=False)
    classOf = models.CharField(max_length=20, blank=False, null=False)
    yearOfGraduations = models.CharField(max_length=20, blank=False, null=False)
    hobbies = models.TextField(blank=False, null=False)
    dateOfBirth = models.CharField(max_length=20)
    year = models.ForeignKey(Album, on_delete=models.CASCADE)

    def __str__(self):
        return self.firstName

urls.py

path('viewAlbum/<int:pk>/', views.viewAlbum, name='view-Album'),
path('view/<int:pk>/', views.viewStudent, name='view-Student'),

更改此代码

def viewAlbum(request, pk):
    primaries = Primary.objects.all()

    post = get_object_or_404(Album, id=pk)

    my_album = Album.objects.get(id=pk)
    return render(request, 'viewAlbum.html', {'primaries': primaries, 'post':post, 
    'my_album':my_album})

到此代码

def viewAlbum(request, pk):
    post = get_object_or_404(Album, id=pk)
    my_album = Album.objects.get(id=pk)
    
    primaries = Primary.objects.filter(year_id=my_album.pk)
    # another way: 
    # primaries = my_album.primary_set.all()

    return render(request, 'viewAlbum.html', {'primaries': primaries, 'post':post, 
    'my_album':my_album})