我如何在 python django 中使用 __init__()

How can I use __init__() in python django

你好,我有以下问题需要解决。我需要实现的是在 运行 应用程序中生成患者 ID 并将其打印出来。但它没有做我想做的。我希望每次我将 运行 应用程序并调用视图时,都会生成一个新的 ID 并暂时打印出来。 这是我创建的用于生成 id 的 class:

import uuid

class PatientId:
    def __init__(self, id_number):
        self.id_number = id_number

    @staticmethod
    def generate_patient_id_number():
        prefix = 'HSCM'
        generated_id = str(uuid.uuid4().hex[:6].upper())
    return  '%s-%s' % (prefix, generated_id)

在我的 views.py,

    from utilities.id_number import PatientId

# Create your views here.
def show_id(request, self):
    id = PatientId(self).generate_patient_id_number()
    print(id)
    return render(request, 'index.html', {})

感谢任何帮助

不确定为什么将 PatientId 作为 class,但是对于给定的 class,您可以像这样使用它,因为 generate_patient_id_number() 是一个静态方法

id = PatientId.generate_patient_id_number()
# id is e.g. 'HSCM-E9E10C'

你不需要 class 这个

在 Python 中,您不需要将所有内容都变成 class,因此如果您有一个名为 id_number 的模块,您可以简单地将该函数放在那里(然后您可以在任何地方使用它,一个视图,一个 class,一个 Django 模型,等等)

# id_number.py

 def generate_patient_id_number():
        prefix = 'HSCM'
        generated_id = str(uuid.uuid4().hex[:6].upper())
        return  '%s-%s' % (prefix, generated_id)

并像这样使用它

from utilities import id_number

def show_id(request):
    id = id_number.generate_patient_id_number()
    print(id)
    return render(request, 'index.html', {})