我已经成功建立了测试站点,现在正在尝试将url链接从私钥更改为子链接,以使该链接对用户而言更加直观。我已经阅读了许多问题,但是还没有找到一个可以充分回答我的问题的问题。
我了解我使用exmodel.name而不是.slug(下面的代码);但是exmodel.slug不返回任何内容,数据库记录是一个单词,因此不重要(图我一次可以解决一个问题)。 exmodel_list.html会按预期编译,但是exmodel_detail.html返回404错误。这对我来说没有意义,因为当我使用该方法时它可以工作。您能提供的任何见解或文章将不胜感激。感谢您的帮助!
class ExModel(models.Model):
name = models.CharField(max_length=50, help_text='Enter name of example model')
slug = models.SlugField(blank=True)
def __str__(self):
"""String for representing the Model object."""
return self.name
def save(self, *args, **kwargs):
if not self.id:
self.slug = slugify(self.name)
super(ExModel, self).save(*args, **kwargs)
def get_absolute_url(self):
"""Returns the url to access a detail record for this model."""
return reverse('exmodel-detail', args=[str(self.id)])
class ExModelListView(generic.ListView):
model = ExModel
class ExModelDetailView(generic.DetailView):
model = ExModel
app_name = 'presentInfo'
urlpatterns = [
path('', views.index, name='index'),
path('exmodel-test', views.ExModelListView.as_view(), name='exmodel'),
path('exmodel-test/<slug:slug>/', views.ExModelDetailView.as_view(), name='exmodel-detail'),
]
{% if exmodel_list %}
<ul>
{% for exmodel in exmodel_list %}
<li>
<a href="{% url 'presentInfo:exmodel-detail' exmodel.name %}">{{ exmodel.name }}</a>
</li>
{% endfor %}
</ul>
{% else %} <ul><li><a href="">no models</a></li></ul>
{% endif %}