Django -是否可以在modelform字段中使用pk以外的值?



我有一个模型表单,我通过AJAX发布表单。其中一个字段是manymany字段,我将其呈现为复选框。默认情况下,django使用传入的查询集中模型的PKs。是否有办法使用模型的另一个字段作为值,而不是PK值。(我把PK设为整数——这是有原因的。我还有一个UUID字段,它不是PK,我想用它来表示值)

在你的模型表单中明确定义你的uuid字段并传递额外的to_field_name="uuid_field"参数,所以当你渲染你的表单时,你的html选择输入的option将被渲染为:

<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__'

更多信息见文档

最新更新