【问题标题】:django-parler doesn't show tabs in admindjango-parler 不在管理员中显示选项卡
【发布时间】:2016-10-22 01:05:57
【问题描述】:

由于某种原因,我在添加到管理员时没有看到任何语言选项卡。我正在使用 Django 1.9.10。我正在使用 django-hvad 但决定尝试 parler。我在一个新项目中尝试了相同的确切代码并且它有效,但在我现有的项目中它没有。请注意,我也在使用 django-mptt。在与 mptt 模型不同的模型中尝试 parler,反之亦然。

settings/base.py

# Translations
gettext = lambda s: s
LANGUAGES = (
    ('en', gettext('English')),
    ('ar', gettext('Arabic')),
)

LOCALE_PATHS = (
    os.path.join(BASE_DIR, "locale"),
)

# # Parler Configuration
PARLER_LANGUAGES = {
    None: (
        {'code': 'ar', },
        {'code': 'en',},
    ),
    'default': {
        'fallback': 'ar',             # defaults to PARLER_DEFAULT_LANGUAGE_CODE
        'hide_untranslated': False,   # the default; let .active_translations()       return fallbacks too.
    }
}
PARLER_DEFAULT_LANGUAGE_CODE = 'ar'

型号

class Category(MPTTModel, TranslatableModel):
    slug = models.SlugField(max_length=50, unique=True, null=True, blank=True)
    translations = TranslatedFields(
        title = models.CharField(max_length=90, unique=True, null=True, blank=True)
    )
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children')

    objects = CategoryManager()

    def __unicode__(self):

        return unicode(self.slug) or u''

    def get_absolute_url(self):
        return reverse("category:detail", kwargs={"slug": self.slug})

    class Meta:
        ordering = ["slug"]
        verbose_name = _("Category")
        verbose_name_plural = _("Categories")

admin.py

class CategoryAdminForm(MPTTAdminForm, TranslatableModelForm):
    pass


class CategoryAdmin(TranslatableAdmin, MPTTModelAdmin):
    form = CategoryAdminForm

    def get_prepopulated_fields(self, request, obj=None):
        return {'slug': ('title',)}  # needed for translated fields


admin.site.register(Category, CategoryAdmin)

【问题讨论】:

    标签: django django-mptt django-parler


    【解决方案1】:

    我刚刚花了很多时间来解决同样的问题。尝试使用真正的SITE_ID 而不是None

    PARLER_LANGUAGES = {
        1: (
            {'code': 'ar', },
            {'code': 'en',},
        ),
        'default': {
            'fallback': 'ar',             # defaults to PARLER_DEFAULT_LANGUAGE_CODE
            'hide_untranslated': False,   # the default; let .active_translations()       return fallbacks too.
        }
    }
    

    【讨论】:

    • 我将PARLER_LANGUAGES 索引从1 更改为2,因为我已经有SITE_ID = 2,SITE_ID 是管理界面中显示的翻译选项卡的问题,很好的答案你解决了我的问题。
    • 谢谢。我西尔维奥拉explicacion。问候
    【解决方案2】:

    尝试升级到最新的django-parler

    我们在 Parler 1.5.1 和 Django 1.8.14 中遇到了同样的问题。升级到 django-parler==1.6.5Django==1.8.15 后,翻译选项卡再次出现在管理中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-27
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      • 2018-05-05
      • 1970-01-01
      相关资源
      最近更新 更多