Django如何使用UUID而不是PK的通用视图

Django如何使用UUID而不是PK的通用视图,django,Django,我正在尝试访问一个类似 127.0.0.1:8000/POSI/qNwEXBxXQdGI4KlQfoHWOA 但是我无法解决这个小问题 这就是错误: NoReverseMatch at/posti/Reverse用于带参数的“详细信息” 找不到“(SmallUUID('qNwEXBxXQdGI4KlQfoHWOA'),)”。1幅(s) 已尝试:[“posti/(?P[0-9a-fA-F-]+)/$”] Django在另一个具有如下字符串的视图中尝试解决此问题时遇到问题: from . impor

我正在尝试访问一个类似

127.0.0.1:8000/POSI/qNwEXBxXQdGI4KlQfoHWOA

但是我无法解决这个小问题

这就是错误:

NoReverseMatch at/posti/Reverse用于带参数的“详细信息” 找不到“(SmallUUID('qNwEXBxXQdGI4KlQfoHWOA'),)”。1幅(s) 已尝试:[“posti/(?P[0-9a-fA-F-]+)/$”]

Django在另一个具有如下字符串的视图中尝试解决此问题时遇到问题:

from . import views
from django.conf.urls import url


app_name = 'posti'

urlpatterns = [
    url(r'^$', views.IndexView.as_view(), name='index'),
    url(r'^(?P<slug>[0-9a-fA-F-]+)/$', views.DetailView.as_view(), name='detail'),
我试图重写get_对象,但没有任何效果。我不明白正则表达式是否错误,或者我的观点是否有问题

编辑:

索引上的模板引发了上述错误,其代码如下:

{% if posti_list != null %}
    <ul>
    {% for post in posti_list %}
        <li><a href="{% url 'posti:detail' post.uuid %}">{{ post.title }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No posts are available.</p>
{% endif %}
{%if posti_list!=null%}
    {post_list%中的post的百分比}
  • {%endfor%}
{%else%} 没有职位

{%endif%}
我向DetailView类添加了
slug\u url\u kwarg='uuid'
,现在它可以工作了,但现在我有了一个

属性错误位于/posti/qNwEXBxXQdGI4KlQfoHWOA/通用详细视图 必须使用对象pk或slug调用DetailView

当我尝试访问特定的帖子时

我向DetailView类添加了
slug\u url\u kwarg='uuid'
,现在它可以工作了,但现在我有了一个

必须使用对象pk或slug调用/posti/qNwEXBxXQdGI4KlQfoHWOA/Generic detail view DetailView处的AttributeError

slug\u url\u kwarg
必须与您的url正则表达式组名匹配(
slug
在您的情况下,这是
slug\u url\u kwarg
的默认值),因此您不应该更改它


有关详细信息,请查看这里的Django源代码片段-

右侧。我读过一个例子,上面写着“slug”,我想应该这样称呼它。
{% if posti_list != null %}
    <ul>
    {% for post in posti_list %}
        <li><a href="{% url 'posti:detail' post.uuid %}">{{ post.title }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No posts are available.</p>
{% endif %}