Я пытаюсь автоматически создавать слагов, извлеченных из названий, введенных пользователями, но я понял, что если в качестве заголовка добавляется просто смайлик / эмодзи или иностранный язык, я получаю это сообщение об ошибке
NoReverseMatch at / images/ create /
Реверс для 'detail' с аргументами '(277,' ')' и ключевыми словами аргументов '{}' не найден.Попробован 1 шаблон (ов): ['images / detail / (? P \ d +) / (? P [- \ w] +) / $']
Вот моя модель
class Image(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
related_name='images_created')
title = models.TextField(max_length=911, blank=False)
slug = models.SlugField(max_length=200,
blank=True)
url = models.URLField()
tags = TaggableManager(blank=True)
image = models.ImageField(upload_to='')
description = models.TextField(blank=True, null=True)
created = models.DateField(auto_now_add=True,
db_index=True)
users_like = models.ManyToManyField(settings.AUTH_USER_MODEL,
class Meta:
ordering = ('-created',)
def __str__(self):
return self.title
def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.title)
super(Image, self).save(*args, **kwargs)
def get_absolute_url(self):
return reverse('images:detail', args=[self.id, self.slug])
Вот моя функция просмотра
@login_required
def image_create(request):
if request.method == 'POST':
form = ImageCreateForm(request.POST, request.FILES)
if form.is_valid():
cd = form.cleaned_data
new_item = form.save(commit=False)
new_item.user = request.user
new_item.save()
form.save_m2m()
create_action(request.user, '|', new_item)
messages.success(request, 'Photo added successfully')
return redirect(new_item.get_absolute_url())
else:
form = ImageCreateForm(data=request.GET)
return render(request, 'images/image/create.html', {'section':
'images', 'form': form})
Мои urls.py
urlpatterns = [url(r'^create/$', views.image_create, name='create'),
Я получаю
NoReverseMatch в / images / create / Reverse для 'detail'с аргументами '(277,' ')' и ключевыми словами '{}' не найдено.Попробован 1 шаблон (ов): ['images / detail / (? P \ d +) / (? P [- \ w] +) / $']
вместо сообщения об успехе.