首页 > 解决方案 > Django - 是否可以对模型字段使用 pk 以外的其他值?

问题描述

我有一个模型表格,我通过 AJAX 发布表格。其中一个字段是多态字段,我将其呈现为复选框。默认情况下,django 在传入的查询集中使用模型的 PK。有没有办法使用模型的另一个字段作为值而不是 PK 值。(我将 PK 作为整数 - 出于某种原因。我还有一个不是 PK 的 UUID 字段。我想将其用于值。)

标签: djangomodelform

解决方案


在您的模型表单中明确定义您的 uuid 字段并传递额外的to_field_name="uuid_field"参数,因此当您呈现表单时,option您的 html 选择输入将呈现为:

<option value="obj.uuid_field">Model Instance</option>

示例模型形式:

class YourModelForm(forms.ModelForm):
    uuid_field = forms.ModelChoicefield(
        queryset=Model.objects.all(),
        to_field_name="uuid_field"
    )
    class Meta:
        model = YourModel
        fields = '__all__'

有关更多信息,请参阅文档


推荐阅读