簡體   English   中英

Django-字符串主鍵-get_absolute_url()結果沒有反向匹配

[英]Django - string primary key - get_absolute_url() result in no reverse match

我想用字符串替換默認的數字primary_key。 該模型可以很好地使用id,現在我用prg重新創建了它,但是檢索數據URL失敗。

class Mymodel(models.Model):
    #id = models.AutoField(primary_key=True)
    prg = models.TextField(primary_key=True, unique=True)

    def get_absolute_url(self):
    #    return reverse('label_app.views.label_detail', args=(self.pk,))
        return reverse('label_detail', kwargs={'prg': self.prg})

lib/python3.5/site-packages/django/urls/resolvers.py in _reverse_with_prefix(self, lookup_view, _prefix, *args, **kwargs)
    495                 "a valid view function or pattern name." % {'view': lookup_view_s}
    496             )
--> 497         raise NoReverseMatch(msg)
    498 
    499 

NoReverseMatch: Reverse for 'model_detail' not found. 'model_detail' is not a valid view function or pattern

這是prg格式:來自werkzeug的“數字/數字/數字”我看到了:

django.urls.exceptions.NoReverseMatch django.urls.exceptions.NoReverseMatch:找不到帶有參數'('180036/10/1',)'的'Model_detail'的反向。 嘗試了1個模式:['(?P [\\ w] +)/ modeldetail / $']

我究竟做錯了什么? 謝謝,BR

您的正則表達式僅匹配字母數字字符,但您的ID包含/ 您應該將其更新為[\\w/]+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM