Django pk не работает должным образом в теге привязки - PullRequest
0 голосов
/ 14 апреля 2020

Недавно я создал модель для сохранения ранга IeeeXtreme нашего колледжа и создал еще одну модель для соединения версии xtreme со своей командой.

model.py:

class Xtreme(models.Model):

    version=models.IntegerField(default=9,primary\_key=True)

    team\_no=models.IntegerField(default=1)

    def \_\_str\_\_(self):

        return str(self.version)

class Team(models.Model):

     version=models.ForeignKey(Xtreme,on\_delete=models.CASCADE)

     team\_name=models.CharField(max\_length=50)

     global\_rank=models.IntegerField(default=1)

     region\_rank=models.IntegerField(default=1)

     country\_rank=models.IntegerField(default=1)

     college\_rank=models.IntegerField(default=1)

     def \_\_str\_\_(self):

        return str(self.version)

и затем я создал тамплату xtreme. html, чтобы загрузить указанные данные версии c в шаблон. На главной странице индекса я загрузил все версии IeeeXtreme для нашего колледжа и хочу связать каждую версию с ее данными, поэтому я использовал PrimaryKey для загрузки через url.

url.py is:

from django.contrib import admin

from django.urls import path,include

from . import views

# from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = [

path('',views.main,name='main'),

path('xtreme/<int:pk>/',views.xtreme,name='xtreme')

]

views.py - это:

from django.shortcuts import render,get_object_or_404

from django.utils import timezone

from django.http import HttpResponse

from .models import *

def main(request):

    xtreme=Xtreme.objects.all().order\_by("-version")

    context={

       "xtreme":xtreme,

    }

    return render(request,'index.html',context)


def xtreme(request,pk):

    xtreme=Xtreme.objects.filter(version=pk).order\_by("-version")

    team=Team.objects.filter(version\_\_version=pk).order\_by("college\_rank")

    post = get\_object\_or\_404(Xtreme, pk=pk)

    context={

     "team":team,

     "xtreme":xtreme,

     "post":post,

    }

    return render(request,'xtreme.html',context)    

index. html

{% load static %}

<section class="sec4" id="xtreme">

    <div class="container">

        <div class="row">
<div class="col-sm-12">

<h1> IEEEXtreme</h1>

</div>

{% for j in xtreme%}

<div class="col-sm-12">

<a href="{% url 'xtreme' pk=post.pk%}"><h3>IEEEXtreme {{j.version}} Rank of our college.</h3></a>

</div>

{% endfor %}

        </div>

    </div>
</section>

Но когда я нажал на ссылку, он направил меня на URL http://127.0.0.1 : 8000 / xtreme /% 3Cversion% 3E / , но когда я набрал http://127.0.0.1: 8000 / xtreme / 9 / вручную, это сработало.

Пожалуйста, помогите мне решить эту проблему проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...