Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django多语言post模型_Python_Django_Python 3.x_Multilingual_Django Multilingual - Fatal编程技术网

Python Django多语言post模型

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”错误 我不知道怎么解决它 翻译我的文章的最佳方法是什么 我想看到我的文章在管理像这样

我对django比较熟悉。我尝试创建多语言博客

我使用django 2.1.2和Python 3.7.1

现在,我可以轻松地将URL、关键字等翻译成“
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

我不能为此创建一个模型吗?例子;我在模型2区域创建了这样的区域;title_en=models.CharField(max_length=120,verbose_name=“title”)title_de=models.CharField(max_length=120,verbose_name=“title”)但我不知道如何在我的语言上连接它们……是的,你可以这样做,但你需要添加一些机制,在当前语言的函数中返回正确的字段。这就是其中一些软件包所做的。因此,您需要在自己编写必要的代码和使用已经完成并经过许多人测试的包之间做出选择。如果可以,我选择后者。我在很多项目中都使用了django Transmeta()。这真的很简单,只做你在这里描述的。但我不知道它是否支持最新的Django/Python版本?谢谢您的帮助,但transmeta不支持我的Django版本:/。。。我仍然在寻找这个解决方案。。。