(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)
我正在使用穷人的方法来提供翻译内容。为此,我在模型中为每种语言添加了翻译字段。
这些字段是一个字段,因为对于每个内容,每种语言只能有一个翻译。
如何在后台限制这些字段的选择?重点是提供内容(模型实例),其中 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)