zhongrj
2025-11-24 276323dce9613867abb3f58a4cc2abbfb2fd0dea
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from django.db import models
from django.contrib.postgres import fields
from django.conf import settings
from django.utils.translation import gettext_lazy as _
 
class PluginDatum(models.Model):
    key = models.CharField(max_length=255, help_text=_("Setting key"), db_index=True, verbose_name=_("Key"))
    user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, default=None, on_delete=models.CASCADE, help_text=_("The user this setting belongs to. If NULL, the setting is global."), verbose_name=_("User"))
    int_value = models.IntegerField(blank=True, null=True, default=None, verbose_name=_("Integer value"))
    float_value = models.FloatField(blank=True, null=True, default=None, verbose_name=_("Float value"))
    bool_value = models.NullBooleanField(blank=True, null=True, default=None, verbose_name=_("Bool value"))
    string_value = models.TextField(blank=True, null=True, default=None, verbose_name=_("String value"))
    json_value = fields.JSONField(default=None, blank=True, null=True, verbose_name=_("JSON value"))
 
    def __str__(self):
        return self.key
 
    class Meta:
        verbose_name = _("Plugin Datum")
        verbose_name_plural = _("Plugin Datum")