sql-server – 有没有办法在django中使用GUID?

前端之家收集整理的这篇文章主要介绍了sql-server – 有没有办法在django中使用GUID?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有几个由sql Server中的GUID加入的表.现在,我找到了几个自定义字段添加django中的GUID的支持,但是如果可能的话我倾向于避免在博客文章中使用代码.我不会与GUID做任何事情,除了加入它,也可能为新条目分配一个GUID(尽管这是可选的).有没有办法使用django的内置类型?像我可以使用某种字段或二进制字段和“诡计”django加入使用它?

如果有任何帮助,我使用django-pyodbc.

解决方法

我将创建一个基本的GUID模型,以便重用它的项目中任何其他模型的属性.模型继承在Django 1.0之前的几个版本中运行良好,并且与Django 1.0相当稳定.

创建一些类似project / common / models.py并放在这个类中:

import hashlib
import random
from django.db import models

class GUIDModel(models.Model):

    guid = models.CharField(primary_key=True,max_length=40)

    def save(self,*args,**kwargs):

      if not self.guid:
        self.guid = hashlib.sha1(str(random.random())).hexdigest()

      super(GUIDModel,self).save(*args,**kwargs)

然后像往常一样创建其他模型:

from common.models import GUIDModel

class Customer(GUIDModel):
  name = models.CharField(max_length=64)

class Product(GUIDModel):
  name = models.CharField(max_length=64)

class Sale(GUIDModel):
  customer = models.ForeignKey(Customer)
  product = models.ForeignKey(Product)
  items = models.PositiveIntegerField()

并且一切都应该很好地使用GUID作为主键而不是自动增量整数.

原文链接:https://www.f2er.com/mssql/82102.html

猜你在找的MsSQL相关文章