- User (用户)
- License (许可证)
- Product (产品)
- LicenseAssignment (许可证分配)
简单的模型定义:
python
from django.db import models
from django.contrib.auth.models import User
class Product(models.Model):
name = models.CharField(max_length=255)
description = models.TextField()
def __str__(self):
return self.name
class License(models.Model):
LICENSE_TYPE_CHOICES = [
('trial', 'Trial'),
('basic', 'Basic'),
('premium', 'Premium'),
]
license_key = models.CharField(max_length=255, unique=True)
license_type = models.CharField(max_length=20, choices=LICENSE_TYPE_CHOICES)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
expiration_date = models.DateField()
def __str__(self):
return f"{self.license_key} - {self.license_type}"
class LicenseAssignment(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
license = models.ForeignKey(License, on_delete=models.CASCADE)
assigned_date = models.DateField(auto_now_add=True)
def __str__(self):
return f"{self.user.username} - {self.license.license_key}"
模型解释
-
Product: 产品模型,表示系统中的不同产品。
name
: 产品名称。description
: 产品描述。
-
License: 许可证模型,表示不同类型的许可证。
license_key
: 许可证的唯一键。license_type
: 许可证类型(试用、基础、高级)。product
: 关联的产品。expiration_date
: 许可证到期日期。
-
LicenseAssignment: 许可证分配模型,表示用户和许可证之间的关联。
user
: 被分配许可证的用户。license
: 分配给用户的许可证。assigned_date
: 分配日期,自动设置为当前日期。
-
迁移模型: 创建和应用数据库迁移。
bashpython manage.py makemigrations python manage.py migrate
-
管理界面: 注册模型到Django admin以便于管理。
pythonfrom django.contrib import admin from .models import Product, License, LicenseAssignment admin.site.register(Product) admin.site.register(License) admin.site.register(LicenseAssignment)
最后就是根据需求创建视图和模板来处理和展示许可证和分配的逻辑。