Django многоязычные почтовые модели - PullRequest
0 голосов
/ 08 ноября 2018

Я начинающий на Джанго.Я пытаюсь создать многоязычный блог.

Я использую django 2.1.2 и Python 3.7.1

Теперь я могу легко переводить URL-адреса, ключевые слова и т. Д. Использовать в "gettext_lazy" и работает потрясающе...

Но я не могу найти какой-либо способ или плагин для перевода моих моделей сообщений.

Я пытаюсь установить django-modeltranslation, но я не могу использовать.Я думаю, что этот плагин несовместим с моей версией Django ... Потому что я все время принимаю _clone() got an unexpected keyword argument '_rewrite' ошибку.

Я не знаю, как ее решить.

Как лучше всего перевести мои сообщения?

Я хочу, чтобы мои статьи в админке вот так;https://image.ibb.co/kiuFFA/Screenshot-16.jpg

setting.py lang, как настройки, подобные этой;

from django.utils.translation import gettext_lazy as _
LANGUAGE_CODE = 'en'
LANGUAGES = (
    ('de', _('Deutsch')),
    ('en', _('English')),
)

MULTILINGUAL_LANGUAGES = (
    "en",
    "de",
)

моя база urls.py, как это;

from django.conf.urls.i18n import i18n_patterns
from django.utils.translation import gettext_lazy as _

urlpatterns = [
    path('i18n/', include('django.conf.urls.i18n')),
]
urlpatterns += i18n_patterns(
    path(_('admin/'), admin.site.urls, name="admin"),
    path(_('about/'), views.about, name="about"),
    path(_('contact/'), include("contact_form.recaptcha_urls")),
    path('', include("article.urls")),
    path(_('user/'), include("user.urls")),
    path('', views.index, name="index"),
    prefix_default_language=True,
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

my model.py, как это;

class Article(models.Model):

    author = models.ForeignKey("auth.User",on_delete = models.CASCADE, verbose_name="Author")
    title = models.CharField(max_length = 120, verbose_name="Title")
    category = models.ForeignKey('Category', on_delete = models.CASCADE, null=True, blank=True)
    content = RichTextField(verbose_name="Content")
    created_date = models.DateTimeField(auto_now_add=True, verbose_name="Created Date")
    image = models.ImageField(blank=True, null=True, verbose_name="Add image (.jpg .png)")
    slug = models.SlugField(unique=True, max_length = 130)

    def __str__(self):
        return self.title

и мой admin.py вот так;

@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):


    list_display = ["title", "category", "created_date", "author"]
    list_display_links = ["title", "author", "created_date"] 
    search_fields = ["title","content"] 
    list_filter = ["created_date","author"] 
    prepopulated_fields = {"slug":('title',)}

Большое спасибо заранее.

1 Ответ

0 голосов
/ 08 ноября 2018

Вы, вероятно, правы, что в настоящее время django-modeltranslation не поддерживает Django 2.1.2 и / или Python 3.7.1. В их документах говорится, что они поддерживают Python 3.6 и Django 2.0, а последний коммит - 2 июля 2018 года.

Отсюда у вас есть несколько вариантов:

  • Исправьте ошибку в django-modeltranslation и внесите свой вклад в проект.
  • Используйте другой пакет перевода Django, который работает с Django 2.1.2 и Python 3.7.1 (проверьте здесь: https://djangopackages.org/grids/g/i18n/).
  • Используйте django-modeltranslation, но понизьте Django до 2.0 и / или Python до 3.6.
...