Amir Hasanzadeh
Amir Hasanzadeh

Reputation: 11

django-parler show fields only in one language on the django admin panel

[enter image description here](https://i.sstatic.net/aXTm0.png)

I used django-parler to translate models. In some models field only show in Persian tab and don't show other language tab.

Django language settings:

    LANGUAGES = [
    ("de", "German"),
    ("fa", "Persian"),
    ("ru", "Russian"),
    ("tr","Turkish"),
    ("ar", "Arabic")
    ]

    LANGUAGE_CODE = 'de'

Parler Settings:

    PARLER_DEFAULT_LANGUAGE_CODE = 'de'
    PARLER_LANGUAGES = {
    config('SITE_ID', cast=int): (
        {'code': 'de', },
        {'code': 'fa', },
        {'code': 'ru'},
        {'code': 'tr'},
        {'code': 'ar'}
    ),
    'default': {
        # defaults to PARLER_DEFAULT_LANGUAGE_CODE
        'fallbacks': ['de'],
        # the default; let .active_translations() return fallbacks too.
        'hide_untranslated': False,
    }
    }

models.py:

    class Sliders(TranslatableModel):
        PRIMARY = 'PR'
        SECONDARY = 'SE'
        POSTION_IN_INDEX_CHOICES = [
        (PRIMARY,_('erster Platz')),
        (SECONDARY,_('zweiter Platz')),
        ]
        translations = TranslatedFields(
            title = models.CharField(_('Titel'), max_length=50),
            image = FileBrowseField(_('Bild'), max_length=200, directory="first-page-      sliders/images", extensions=[".jpg",".png",'jpeg']),
            link = models.URLField(_('Adresse'), max_length=200,default=None,null=True,blank=True),
            button_caption = models.CharField(_('Schaltflächentext'),max_length=10),
            ordering = models.SmallIntegerField('Bestellung'),
            postion = models.CharField(_('Position'),choices=POSTION_IN_INDEX_CHOICES,max_length=2,default=PRIMARY),
           created = models.DateTimeField(_('Erstellungsdatum'), auto_now=True, auto_now_add=False),
           updated = models.DateTimeField(_('Aktualisierungsdatum'), auto_now=False, auto_now_add=True),
           service = models.ForeignKey("service.Service", verbose_name=_("service"), on_delete=models.CASCADE,default=None, null=True,blank=True)
    )

        class Meta:
            verbose_name = _('Schieberegler')
            verbose_name_plural = _('Schieberegler')

        def __str__(self):
            try:
                return self.title
            except TranslationDoesNotExist:
                return ''

admins.py:

    @admin.register(Sliders)
    class SlidersAdmin(TranslatableAdmin):
        model = Sliders    

Upvotes: 1

Views: 194

Answers (0)

Related Questions