首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在多语言项目中保存编辑表单

如何在多语言项目中保存编辑表单
EN

Stack Overflow用户
提问于 2022-08-20 15:59:29
回答 1查看 22关注 0票数 0

我从Django 2一书中通过例子来研究Django。我正在努力改进第10章开始的一个项目。现在,我试图在"django-parler“的帮助下添加多种语言。总的来说,我做到了,但在我看来,有更好的方法。视图被实现为从mixins继承的类。如果在页面上选择了默认语言以外的语言,则表单中的laguage_code字段的值仍然等于默认值。我试图在form_valid方法中更改此字段,但没有成功。表单仍然使用默认语言保存。对我来说唯一可行的办法是,从表面上看,这似乎是一种套话:

代码语言:javascript
复制
def form_valid(self, form):
    language = translation.get_language()
    _course = form.save(commit=False)

    try:
        course = Course.objects.get(pk=_course.id)
    except Course.DoesNotExist:
        course = Course()
        course.owner = self.request.user
    course.set_current_language(language)

    cd = form.cleaned_data
    course.subject = cd['subject']
    course.title = cd['title']
    course.slug = cd['slug']
    course.overview = cd['overview']
    course.save()
    return redirect(reverse('courses:manage_list'))

也许有人知道一种更优雅的方法来实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2022-08-20 21:37:57

我希望您有一个基于类的Django FormViewModelFormMixin

代码语言:javascript
复制
def form_valid(self, form):
    self.obj = form.save()  # you dont need it in UpdateView
    return super().form_valid(form)

顺便说一下。

Django-ParlerDjango-HVAD已经是过时的项目了。您可以使用django-模型翻译。或者我的项目Django-TOF v.2。

当然django 2已经是一个非常古老的项目了。Django 4.1要好得多。

在我看来,最好的书关于Django - Django设计模式和最佳实践。最后一个版本。它比"2范围“或"Django 2按例”更像Django-ish -ish。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73428143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档