我想用字符串替换默认的数字主键。 这个模型可以很好地使用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格式:“Number/Number/Number”来自werkzeug我看到:
django.urls.exceptions.NoReverseMatch django.urls.exceptions.NoReverseMatch: Reverse for 'Model_detail' with arguments '('180036/10/1',)' not found. 1 pattern(s) tried: ['(?P[\w]+)/modeldetail/$']
我做错什么了? 谢谢,BR
您的regex只匹配字母数字字符,但是您的ID包含
/
。您应该将其更新为[\w/]+
。在相关问题 更多 >
编程相关推荐