Я уже один день ломаю голову над этим.
Я использую django-modeltranslation для перевода блоговых постов. Все отлично работает, кроме того, я также пытаюсь автоматически переводить слагов из заголовка, основанного на этой статье: https://raphaelbeck.wordpress.com/2011/04/16/how-to-translate-slug-with-django-modeltranslation/
Только переведенный слаг не переведен сохранен в базу данных.
class Item(models.Model):
category = models.ForeignKey(
'help.category',
on_delete=models.PROTECT,
related_name='categories')
title = models.CharField(_('Titel'),max_length=255)
description = RichTextField(_('Omschrijving'))
slug = AutoSlugField(_('slug'), populate_from='title', overwrite=True)
class Meta:
verbose_name = _(u"Item")
verbose_name_plural = _(u"Items")
#automatically creating slugs for translations
def save(self, *args, **kwargs):
for lang_code, lang_verbose in settings.LANGUAGES:
if hasattr(self, 'slug_%s' % lang_code) and hasattr(self, 'title_%s' % lang_code):
setattr(self, 'slug_%s' % lang_code, slugify(getattr(self, 'title_%s' % lang_code, u"")))
print(self.slug_nl)
print(self.slug_en)
print(self.slug_nl)
print(self.slug_en)
super().save(*args, **kwargs)
def __str__(self):
return str(self.title)
Я добавил несколько функций печати, чтобы увидеть, что на самом деле происходит. Журналы консоли соответствуют ожидаемым:
нидерландский-пробкового
нет
нидерландский-слизняк
английский-слизняк
нидерландский-слизняк
английский-слизняк
-> slug_en переведен правильно на основе заголовка в консоли, но в базе данных сохранены голландские слизни.
Заранее спасибо! Любые идеи с благодарностью.