gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:13:51 25 4
gpt4 key购买 nike

我有几个由 SQL Server 中的 GUID 连接的表。现在,我发现了一些自定义字段来在 django 中添加对 GUID 的支持,但如果可能的话,我倾向于避免在博客文章中使用代码。除了加入 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 作为主键而不是自动增量整数。

关于sql-server - 有没有办法在 django 中使用 GUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/894595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com