Python Django多语言post模型
我对django比较熟悉。我尝试创建多语言博客 我使用django 2.1.2和Python 3.7.1 现在,我可以轻松地将URL、关键字等翻译成“Python Django多语言post模型,python,django,python-3.x,multilingual,django-multilingual,Python,Django,Python 3.x,Multilingual,Django Multilingual,我对django比较熟悉。我尝试创建多语言博客 我使用django 2.1.2和Python 3.7.1 现在,我可以轻松地将URL、关键字等翻译成“gettext\u lazy”,工作非常出色 但我找不到任何方法或插件来翻译我的帖子模型 我尝试安装django modeltranslation,但无法使用。我认为这个插件与我的django版本不兼容。。。因为我一直收到一个意外的关键字参数“\u rewrite”错误 我不知道怎么解决它 翻译我的文章的最佳方法是什么 我想看到我的文章在管理像这样
gettext\u lazy
”,工作非常出色
但我找不到任何方法或插件来翻译我的帖子模型
我尝试安装django modeltranslation,但无法使用。我认为这个插件与我的django版本不兼容。。。因为我一直收到一个意外的关键字参数“\u rewrite”错误
我不知道怎么解决它
翻译我的文章的最佳方法是什么
我想看到我的文章在管理像这样;
setting.py lang类似这样的设置
from django.utils.translation import gettext_lazy as _
LANGUAGE_CODE = 'en'
LANGUAGES = (
('de', _('Deutsch')),
('en', _('English')),
)
MULTILINGUAL_LANGUAGES = (
"en",
"de",
)
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)
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.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',)}
我的基本URL.py如下所示
from django.utils.translation import gettext_lazy as _
LANGUAGE_CODE = 'en'
LANGUAGES = (
('de', _('Deutsch')),
('en', _('English')),
)
MULTILINGUAL_LANGUAGES = (
"en",
"de",
)
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)
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.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',)}
我的model.py是这样的
from django.utils.translation import gettext_lazy as _
LANGUAGE_CODE = 'en'
LANGUAGES = (
('de', _('Deutsch')),
('en', _('English')),
)
MULTILINGUAL_LANGUAGES = (
"en",
"de",
)
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)
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.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',)}
我的admin.py是这样的
from django.utils.translation import gettext_lazy as _
LANGUAGE_CODE = 'en'
LANGUAGES = (
('de', _('Deutsch')),
('en', _('English')),
)
MULTILINGUAL_LANGUAGES = (
"en",
"de",
)
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)
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.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',)}
非常感谢您。您可能是对的,目前django modeltranslation不支持django 2.1.2和/或Python 3.7.1。他们的文档称他们支持Python 3.6和Django 2.0,最新提交日期为2018年7月2日 在这里,您有几个选择:
- 修复django modeltranslation中的错误,并为项目做出贡献
- 使用另一个与Django 2.1.2和Python3.7.1一起工作的翻译Django包(请检查此处:)
- 使用django modeltranslation,但将django降级为2.0和/或将Python降级为3.6