Тип исключения: NoReverseMatch - Django - PullRequest
0 голосов
/ 16 апреля 2020

после нескольких часов исследований я не могу избавиться от этой ошибки, надеюсь, кто-то может мне помочь.

Модели:

class Puja(models.Model):
    seller = models.OneToOneField(Seller, on_delete=models.CASCADE)
    user = models.OneToOneField(User, on_delete=models.CASCADE, blank=True,null=True)
    title = models.CharField(max_length=100)
    video = models.FileField(blank=True)
    photo = models.ImageField(blank=True)
    published_date = models.DateTimeField("Published: ",default=timezone.now())
    bidding_end = models.DateTimeField()
    starting_price = models.IntegerField(default=1)
    #slug = models.SlugField(null=True) 

    def __str__(self):
        return str(self.title)

    #def get_absolute_url(self):
    #   return reverse('bidding_list_detail', args=[str(self.id)])  
    #slug time
    def get_absolute_url(self):
        return reverse('bidding_list_detail',args={'id': self.id})

Просмотров:

class bidding_list(ListView):
    model = Puja
    template_name = 'bidding_templates/bidding_list.html'
    """return render(request= request,
      template_name='bidding_templates/bidding_list.html',
      context = {"Pujas": Puja.objects.all})"""

class bidding_list_detail(DetailView):
    model = Puja
    template_name = 'bidding_templates/bidding_list_detail.html'

URL:

    path('admin/', admin.site.urls),
    path("bidding_list/", bidding_list.as_view(), name="bidding_list"),
    path('<int:pk>', bidding_list_detail.as_view(), name='bidding_list_detail'),

Администратор:


class PujaAdmin(admin.ModelAdmin):
    list_display = ('seller','title','video','photo','published_date','bidding_end','starting_price')

admin.site.register(Puja,PujaAdmin)

шаблон 1:

{% extends 'header.html' %}

{% block content %}

<h1>Pujas</h1>

{% for Puja in object_list %} <!--object_list-->

<ul>
  <li><a href="{{ Puja.get_absolute_url }}"> {{ Puja.title }} </a></li>
</ul>

{% endfor %}

{% endblock %}

шаблон 2:

{% extends 'header.html' %}

{% block content %}

<div>
  <h2>{{ object.title }}</h2>
  <p>{{ object.seller }}</p>
</div>
{% endblock %}

enter image description here

Обратите внимание, что всякий раз, когда я удаляю <a href="{{ Puja.get_absolute_url }}"> из первого шаблона, объекты "пуджа" в модели правильно отображаются в шаблоне, но я не могу получить к ним доступ. Обычно они существуют на панели администратора, но не отображаются непосредственно на веб-сайте.

Большое спасибо за продвижение и здоровье.

edit 1: Вот urls.py прямо из Приложение создано django. Чтобы быть более точным c, я создал после проекта новое приложение под названием «основное», в котором я запрограммировал весь проект, включая весь код этого вопроса, кроме редактирования.

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

#from django.config import settings
#from django.config.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('main.urls')),

    #path('', include('model.urls')),
    #path('', include('blog.urls')),
    #path('', include('photo.urls')),
    #path('', include('video.urls')),

] # +static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

1 Ответ

0 голосов
/ 16 апреля 2020

Полагаю, проблема в этой строке - верните вспять ('bidding_list_detail', args = {'id': self.id}), вы передаете id в виде строки, но пытаетесь найти соответствие с int в url. Попробуйте следующее return reverse ('bidding_list_detail',args=[self.id])

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