我是Django的初学者。我尝试创建多语言博客。
我使用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)
我的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',)}
非常感谢您。
答案 0 :(得分:1)
您可能是对的,当前django-modeltranslation不支持Django 2.1.2和/或Python 3.7.1。他们的文档说,他们支持Python 3.6和Django 2.0,最新提交于2018年7月2日。
从这里您可以选择: