django 2 функция модели не распознается внутри индекса. html - PullRequest
0 голосов
/ 14 июля 2020

Привет, я новичок в django, так что не беспокойтесь sh! .Im, пытаясь создать блог в django. мне нужно сопоставить сообщения на домашней странице со страницей сообщения. для этого .i определили функцию с именем get_absulute_url (self) в models.py, но она не распознается в index. html. когда я нажимаю на ссылки, ничего не происходит ... я не там, где я сделал ошибку!

model.py

from django.db import models
from django.urls import reverse
import posts


# Create your models here.
class post(models.Model):
    title=models.CharField(max_length=500)
    content=models.TextField()
    timestamp=models.DateTimeField(auto_now=False,auto_now_add=True)
    updated= models.DateTimeField(auto_now=False,auto_now_add=True)

def get_absulute_url(self):
    return reverse("posts:detail", kwargs={'id': self.id})
#     return reverse(viewname=posts.views.posts_list,urlconf=any, kwargs={"id": self.id})

views.py

def posts_list(request):#list items
    queryset=post.objects.all()
    context={
        "objectsList":queryset,
        "title":"list"

    }
    return render(request,"index.html",context)

индекс. html

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{ title }}</title>
</head>
<body>


{% for obj in objectsList %}
    <a href="{{ obj.get_absulute_url  }}">Link</a><br>
    <a href="{% url "posts:detail" id=obj.id %}">{{ obj.title }}</a> <br>
    {{ obj.content }} <br>
    {{ obj.timestamp }} <br>
    {{ obj.updated }} <br>
    {{ obj.id }} <br>
    {{ obj.pk }} <br>

{% endfor %}
</body>
</html>

url.py

from django.contrib import admin
from django.urls import path
from posts import views as posts_views

urlpatterns = [

    path('create/',posts_views.posts_create),
    path('<int:id>/', posts_views.posts_detail,name="detail"),
    path('',posts_views.posts_list),
    path('update/', posts_views.posts_update),
    path('delete/', posts_views.posts_delete),


]

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Изменить посты: деталь в деталь

return reverse("detail", kwargs={'id': self.id})

href="{% url "detail" id=obj.id %}"
0 голосов
/ 14 июля 2020

Сопоставление может быть проблемой, но оно вызовет ошибку перед выполнением.

По-прежнему добавьте app_name = 'posts' в файл urls.py вашего приложения и попробуйте, это может сработать, или просто используйте встроенный класс DetailView, который все еще выдает ошибку лучше добавить представление post_detail к вопросу выше, чтобы мы могли получить более полное представление о том, что вы ищете.

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