我想在Django 3的网站模板URL链接中显示主题标题

问题描述 投票:0回答:1

我想在Django 3的网站模板URL链接中显示主题标题。当前正在打开主题ID号。例如:http://localhost:8000/detay/4例如:http://localhost:8000/detay/2例如:http://localhost:8000/detay/1

但是我想这样做例如:http://localhost:8000/detay/1/this-is-topic-title要么例如:http://localhost:8000/detay/3/this-is-topic-title。。。

views.py

from django.shortcuts import render, get_object_or_404
from django.utils import timezone
from .models import *

# Create your views here.

def index(request):
    girdiler = Deneme1Model.objects.filter(yuklemeTarihi__lte=timezone.now()).order_by('-yuklemeTarihi')
    context ={
        'girdiler':girdiler
    }
    return render(request, 'deneme1Uygulama/index.html', context)

def ekle(request):
    return render(request, 'deneme1Uygulama/ekle.html')

def detay(request, pk):
    girdiler = Deneme1Model.objects.filter(pk=pk)
    context ={
        'girdiler':girdiler
    }
    return render(request, 'deneme1Uygulama/detay.html', context)


def sayfaYok(request):
    return render(request, 'deneme1Uygulama/404.html')

urls.py

from django.urls import path
from .import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('', views.index, name='index'),
    path('ekle/', views.ekle, name='ekle'),
    path('detay/<int:pk>', views.detay, name='detay'),
    path('404/', views.sayfaYok, name='sayfaYok'),
]

urlpatterns +=static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

models.py

from django.db import models
from django.utils import timezone

# Create your models here.

class Deneme1Model (models.Model):
    baslik = models.CharField(max_length=50, verbose_name='BAŞLIK')
    aKaydi = models.CharField(max_length=50, verbose_name='A KAYDI')
    dosyaYukle = models.FileField(upload_to='media', verbose_name='DOSYA YÜKLE')
    yuklemeTarihi =models.DateTimeField(default =timezone.now)
    yayinKontrol = models.BooleanField(default=True)

    def __str__(self):
        return self.baslik

detay.html

{% block content %}

<div class="row">
    {% if girdiler %}
        {% for girdi in girdiler %}
            <div class="col-12 d-flex justify-content-center">
                <div class="card w-100">
                    <img class="card-img-top img-fluid umaxhe20" src=" {{ girdi.dosyaYukle.url }} " alt="Card image cap">
                    <div class="card-body">
                        <h5 class="card-title"> {{ girdi.baslik }} </h5>
                        <p class="card-text"> {{ girdi.aKaydi }} </p>
                        <a href="{% url 'detay' girdi.pk %}" class="btn btn-primary">{{ girdi.yuklemeTarihi }} </a>
                    </div>
                </div>
            </div>
        {% endfor %}
    {% else %}
        {% url 'sayfaYok' %}
    {% endif %}

</div>


{% endblock content %}
django url-pattern django-3.0
1个回答
0
投票

未经测试,但可能是这样的urls.py

urlpatterns = [
   path('detay/<int:pk>', views.detay, name='detay'),
   path('detay/<int:pk>/<string:topic>', views.detay_topic, name='detay-topic'),
]

views.py

def detay_topic(request, pk, topic):
...
© www.soinside.com 2019 - 2024. All rights reserved.