Я хочу чтобы url выводилося названия статьи типо programs/kak-vzlomat-jopu
или как то так. И еще настораживает то что как рагумент берет slug : 13
а это вообще из другой колонки в database
Traceback:
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
145. response = self.process_exception_by_middleware(e, request)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
143. response = response.render()
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\response.py" in render
106. self.content = self.rendered_content
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\response.py" in rendered_content
83. content = template.render(context, self._request)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\backends\django.py" in render
61. return self.template.render(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
171. return self._render(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\loader_tags.py" in render
150. return compiled_parent._render(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\loader_tags.py" in render
62. result = block.nodelist.render(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\defaulttags.py" in render
209. nodelist.append(node.render_annotated(context))
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\defaulttags.py" in render
443. url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\urls\base.py" in reverse
90. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "D:\Users\MAestro\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix
668. raise NoReverseMatch(msg)
Exception Type: NoReverseMatch at /programms/
Exception Value: Reverse for 'article_detailProgramms' with keyword arguments '{'slug': '13'}' not found. 1 pattern(s) tried: ['programms/(?P<slugProg>[-a-zA-Z0-9_]+)/$']
views.py
class ProgramsList(ListView):
model = Programs
template_name = 'programs/programms.html'
paginate_by = 6
def get_context_data(self, **kwargs):
context = super(ProgramsList, self).get_context_data(**kwargs)
list_exam = Programs.objects.all()
paginator = Paginator(list_exam, self.paginate_by)
page = self.request.GET.get('page')
try:
file_exams = paginator.page(page)
except PageNotAnInteger:
file_exams = paginator.page(1)
except EmptyPage:
file_exams = paginator.page(paginator.num_pages)
context['articles_top'] = Programs.objects.all().order_by('?')[:6]
context['list_exams'] = file_exams
return context
def ProgramsDetail(request, slugProg):
Articles.objects.filter(slug=slugProg)
programm_details = Articles.objects.filter(slug=slugProg).first()
top_art = Articles.objects.all().order_by('-view')[:10]
top_prog = Programs.objects.all().order_by('?')[:10]
return render(
request,
'programs/programm.html',
{
'programm_details': programm_details,
'top_art':top_art,
'top_prog':top_prog,
}
)
urls.py
urlpatterns=[
path('', ProgramsList.as_view(), name='articles_listProgramms'),
path('<slug:slugProg>/', views.ProgramsDetail, name='article_detailProgramms'),
path('searchProgramm/', views.post_search, name='post_searchProgramm'),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
class Programs(models.Model):
title = models.CharField(max_length=200, verbose_name='Название Программы')
storyPrograms = models.TextField(default='' , verbose_name='Расширенное описание, функционал и т.д')
previewPrograms = models.ImageField(upload_to='' , verbose_name='Каритинка 260х180')
slugProg = AutoSlugField(populate_from='title')
languegesPrograms = models.TextField(default='' , verbose_name='языки которые поддерживает программа')
demandPrograms = models.TextField(default='' , verbose_name='Требования')
memoryPrograms = models.TextField(default='' , verbose_name='Место, на жестком диске')
uploadPrograms = models.TextField(default='' , verbose_name='Сыллка с установкой')
downlandCount = models.IntegerField(default=0)
date = models.DateTimeField(auto_now=True)
class Meta:
verbose_name = 'Программы'
verbose_name_plural = 'Программы'
def __str__(self):
return self.title
в шаблоне передаю slug в url вот так
<a href="{% url 'article_detail' slug=top.slugProg %}">
Как пример мой вариант. Все лишнее удалено )
model.py (обрати внимание на get_absolute_url
)
class Post(models.Model):
title = models.CharField(max_length=120,
verbose_name='Title')
slug = models.SlugField(unique=True, verbose_name='URL')
def __unicode__(self):
return self.title
def __str__(self):
return self.title
def get_absolute_url(self):
return "/post/%s/" % (self.slug)
url.py (попробуй изменить адрес на /категория/slug были на этом как то проблемы)
path('post/<slug:slug>/', views.DetailPost.as_view(), name='detail'),
view.py попробуй через CBV.
class DetailPost(DetailView):
model = Post
template_name = 'detail.html'
в admin.py строка prepopulated_fields = {'slug': ('title',)}
позволяет сделать автозаполнение поля slug на основе title
В admin.py
в класс админа необходимо ввести строку prepopulated_fields = {'slug': ('title',)}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть ли аналог GetKeyDown , но с тачамиУже пару часов роюсь в инете ,но так и не смог найти
Как через рефлексию получить все обработчики события? Ведь, когда я добавляю обработчик, он должен сохраняться в какое-то приватное поле
как показать отсчет времени при запуске/перезапуске сцены?
Проект ASPNET Core WebAPI, ORM EF Core, база данных MySQL, провайдер Pomelo