Python UUID上带有ModelChoiceField的Django表单不会在已清理的\u数据中显示其内容
我有一个模型:Python UUID上带有ModelChoiceField的Django表单不会在已清理的\u数据中显示其内容,python,django,django-models,django-forms,Python,Django,Django Models,Django Forms,我有一个模型: class Code(models.Model): section = models.CharField(max_length=255) code_uid = models.UUIDField() def __str__(self): return self.section 和一份表格: class MyForm(Form): code_uid = ModelChoiceField(queryset=Code.objec
class Code(models.Model):
section = models.CharField(max_length=255)
code_uid = models.UUIDField()
def __str__(self):
return self.section
和一份表格:
class MyForm(Form):
code_uid = ModelChoiceField(queryset=Code.objects.all(), to_field_name="code_uid")
但此表单的帖子后面有以下代码:
if my_form.is_valid():
print(my_form)
print(my_form.cleaned_data)
print(my_form.cleaned_data["code_uid"])
print(type(my_form.cleaned_data["code_uid"]))
印刷品:
对于我的表单正确显示的HTML:
<tr><th><label for="id_code_uid">Code uid:</label></th><td><select name="code_uid" required id="id_code_uid">
<option value="">---------</option>
<option value="e3112238-0768-1111-aaaa-4654ab799752">foo</option>
<option value="e3112238-0768-1111-aaaa-4654ab799752">bar</option>
对于类型(my_form.cleaned_data[“code_uid”]):
{'code_uid': <Code: foo>} <== should be the UUID
foo
<class 'creator.models.Code'>
我应该如何在已清理的UUID值字典中获取UUID值?我不确定您想要实现什么:
只指定表单中应使用的值;它应该是唯一的(好吧,uuid实际上是唯一的…)。但它在这里没有任何用途,因为默认情况下使用django自动生成的pk,这保证是唯一的to_field_name
- 在任何情况下,
包含的都是您在表单中选择的my\u form.cleaned\u data[“code\u uid”]
模型的实例。您可以获取UUID的creator.models.code
,并根据需要使用它my_form.cleaned_data[“code_uid”]。code_uid