模板渲染过程中出错:NoReverseMatch at /OnetoOneRelationApp/ Reverse for 'RestaurantDetails' with arguments '('',)' not found

如何解决模板渲染过程中出错:NoReverseMatch at /OnetoOneRelationApp/ Reverse for 'RestaurantDetails' with arguments '('',)' not found

ERROR : noreverseMatch at /OnetoOneRelationApp/
Reverse for 'RestaurantDetails' with arguments '('',)' not found. 1 pattern(s) tried: ['OnetoOneRelationApp/(?P<pk>[0-9]+)/$']

我在尝试从餐厅的超链接访问餐厅详细信息时遇到上述错误 name.当我在模板中使用“{{ restaurant.name }}”时它工作正常但是当我尝试使用下面的代码时它是 抛出错误 {{ restaurant.name }}"

模型.py:

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


class Place(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=70)

    def __str__(self):
        return self.name


class Restaurant(models.Model):
    name = models.CharField(max_length=70)
    place = models.OnetoOneField(Place,on_delete=models.CASCADE,primary_key=True)
    servers_pizza = models.BooleanField(default=False)

    def get_absolute_url(self):
        return reverse('OnetoOneRelationApp:RestaurantDetails',kwargs={'pk': self.pk})

    def __str__(self):
        return self.name


class Waiter(models.Model):
    name = models.CharField(max_length=30)
    restaurant = models.ForeignKey(Restaurant,on_delete=models.CASCADE)

    def __str__(self):
        return self.name

urls.py:

from django.urls import path
from .views import RestaurantsList,WaiterRestaurantDetails

app_name = 'OnetoOneRelationApp'

urlpatterns = [
    path('OnetoOneRelationApp/',RestaurantsList.as_view(),name='RestaurantsList'),path('OnetoOneRelationApp/<int:pk>/',WaiterRestaurantDetails.as_view(),name='RestaurantDetails'),]

视图.py

from django.views import generic
from .models import Restaurant

class RestaurantsList(generic.ListView):
    model = Restaurant
    template_name = 'OnetoOneRelationApp/Restaurants.html'
    context_object_name = 'Restaurants_List'


class WaiterRestaurantDetails(generic.DetailView):
    model = Restaurant
    template_name = 'OnetoOneRelationApp/Restaurant-Details.html'
    context_object_name = 'Restaurant'

餐厅.html

{% if Restaurants_List %}
{% for restaurant in  Restaurants_List %}
    <ul>
        <li>
            <a href="{{ restaurant.get_absolute_url }}" target="_blank">{{ restaurant.name }}</a>
        </li>
    </ul>
{% endfor %}
{% else %}
    <h2> hey ! u don't have any Restaurants ..</h2>
{% endif %}

餐厅详细信息.html

{{ Restaurant.name }}
<br>
{{ Restaurant.servers_pizza }}

{% for waiter in Restaurant.waiter_set.all %}
<ul>
    <li>
        {{ waiter.name }}
    </li>
</ul>
{% endfor %}

我也在主项目根目录的“已安装的应用程序”部分添加了我的应用程序。当我在 href 标签中使用 {{ restaurant.get_absolute_url }} 时它工作正常。但是当我使用 {% url 'OnetoOneRelationApp:RestaurantDetails' restaurant.id %}

时它抛出错误

提前致谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?