(Django/Python)如何限制onetoonefield的选择?

(Django/Python) How to limit onetoonefield's choices?

我正在使用穷人的方法来提供翻译内容。为此,我在模型中为每种语言添加了翻译字段。

这些字段是一个字段,因为对于每个内容,每种语言只能有一个翻译。

如何在后台限制这些字段的选择?重点是提供内容(模型实例),其中 lang 属性设置为特定语言,即 translations_en 字段的 en。

Django 文档没有在 https://docs.djangoproject.com/en/2.0/ref/contrib/admin/

说明 onetoonefield

您是否尝试按照 documentation 中的说明覆盖 ModelAdmin.formfield_for_foreignkey(db_field, request, **kwargs) 方法?

class MyModelAdmin(admin.ModelAdmin):
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == "translation":
            kwargs["queryset"] = Translation.objects.filter(lang="en")
        return super().formfield_for_foreignkey(db_field, request, **kwargs)