首页 > 解决方案 > 如何通过 uuid4 在 django 中获得正确的 UUID 格式而不是连字符?

问题描述

我是新手,我正在尝试将 uuid 保存到我的模型中

正如研究的 uuid 的正确格式是 - UUID 表示为 32 个十六进制(base-16)数字,以连字符分隔的五组显示,格式为 8-4-4-4-12,总共 36 个字符(32 个十六进制字符和 4 个连字符)。例如:123e4567-e89b-12d3-a456-426614174000。

但是当我保存我的表单时,它会将我的 UUID 呈现为字符串 0262d1dae7334d44b97b96f2915719ec

我的models.py是-

class registertable(models.Model):
    registeri=models.UUIDField(primary_key=True, default=uuid.uuid4,editable=False,unique=True)
    date_of_collection=models.DateField()

请提供帮助,因为当我使用它来保存和更新表单时,它会给我以下错误-['“”不是有效的 UUID。']

已编辑

视图.py

def collection(request):
    if request.method=='GET':
            return render (request,'register/collection.html',{'form':collectionform()})
    else:
        form=collectionform(request.POST)
        newcollectionform=form.save(commit=False)
        newcollectionform.save()
        return render (request,'register/collection.html',{'form':collectionform()})

表格.py

class Meta:
        model = registertable
        fields = ['date_of_collection']
        widgets = {
            'date_of_collection':DateInput(),
}

HTML.py

/head>
<body>
    <form  action="" method="POST">
    {% csrf_token %}
    </div>
    {{ form.as_table }}
    <input id="submit" type="submit" value="Submit">
    </form>
    <script>
        $(function () {
          $("#datetimepicker1").datetimepicker();
        });
      </script>
      <script>
      $(function () {
        $('.selectpicker').selectpicker();
    });
    </script>
</body>

用于更新代码

视图.py

def seecollection(request):
        collections=registertable.objects.all()
        return render(request,'register/seecollection.html',{'collections':collections})
def editcollection(request,registertable_pk):
        #pk=self.kwargs.get('collection_pk')
        collection=get_object_or_404(registertable,pk=registertable_pk)
        if request.method=='GET':
                form=collectionform(instance=collection)
                return render(request,'register/editcollection.html',{'collection':collection,'form':form})
        else:
                try:
                        form=collectionform(request.POST,instance=collection,)
                        form.save()
                        return redirect('seecollection')
                except ValueError:
                        return render(request,'register/editcollection.html',{'collection':collection,'form':form,'error':'Incorrect Entry'})

HTML

{% include 'partical/_alert.html'%}
    <form  action="POST">
      {% csrf_token %}
      {{form.as_p}}
    <input id="submit" type="submit" value="Submit">
    </form>
        <script>

标签: django-modelsdjango-formsuuid

解决方案


推荐阅读