Я хочу показать заголовок topi c в ссылке на шаблон сайта на django 3 - PullRequest
0 голосов
/ 19 марта 2020

Я хочу показать заголовок topi c в ссылке на шаблон веб-сайта на django 3. В настоящее время открывается идентификатор topi c id. например: http://localhost: 8000 / detay / 4 например: http://localhost: 8000 / detay / 2 например: http://localhost: 8000 / detay / 1

но я хочу сделать это следующим образом: http://localhost: 8000 / detay / 1 / this-is-topi c -ititle или, например, : http://localhost: 8000 / detay / 3 / this-is-topi c -ititle . , .

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 %}

1 Ответ

0 голосов
/ 19 марта 2020

Не проверено, но, вероятно, что-то вроде этого 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):
...
...