models

package
v1.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2025 License: GPL-2.0 Imports: 11 Imported by: 4

Documentation

Index

Constants

View Source
const (
	MODEL_SAVE_HOOK   = "django.Model.Save"
	MODEL_DELETE_HOOK = "django.Model.Delete"
)

Variables

View Source
var (
	ErrDefault = errs.Error(
		"default ordering is invalid",
	)
	ErrEmpty = errs.Error(
		"ordering field cannot be empty",
	)
	ErrFormat = errs.Error(
		"ordering field must be in the format <field> <ASC|DESC> or <field>",
	)
)
View Source
var (
	ErrBackendNotFound = errors.New("backend not found")
)

Functions

func DeleteModel added in v1.7.0

func DeleteModel(c context.Context, m attrs.Definer) (deleted bool, err error)

func SaveModel added in v1.7.0

func SaveModel(c context.Context, m attrs.Definer) (saved bool, err error)

Types

type Backend

type Backend[T any] interface {
	CreateTable(*sql.DB) error
	NewQuerySet(*sql.DB) (T, error)
	Prepare(ctx context.Context, db *sql.DB) (T, error)
}

type BaseBackend

type BaseBackend[T any] struct {
	CreateTableQuery string
	CreateTableFn    func(*sql.DB) error
	NewQuerier       func(*sql.DB) (T, error)
	PreparedQuerier  func(ctx context.Context, d *sql.DB) (T, error)
}

func (*BaseBackend[T]) CreateTable

func (b *BaseBackend[T]) CreateTable(db *sql.DB) error

func (*BaseBackend[T]) NewQuerySet

func (b *BaseBackend[T]) NewQuerySet(db *sql.DB) (T, error)

func (*BaseBackend[T]) Prepare

func (b *BaseBackend[T]) Prepare(ctx context.Context, d *sql.DB) (T, error)

type BaseQuerier

type BaseQuerier[T any] interface {
	Close() error
}

type ContextDeleter added in v1.7.0

type ContextDeleter interface {
	Delete(c context.Context) error
}

type ContextSaver added in v1.7.0

type ContextSaver interface {
	Save(c context.Context) error
}

type Deleter

type Deleter interface {
	Delete() error
}

type Email added in v1.7.0

type Email mail.Address

func (*Email) Scan added in v1.7.0

func (e *Email) Scan(src interface{}) error

func (*Email) ScanAttribute added in v1.7.0

func (e *Email) ScanAttribute(src interface{}) error

func (Email) String added in v1.7.0

func (e Email) String() string

func (Email) Value added in v1.7.0

func (e Email) Value() (driver.Value, error)

type Model

type Model interface {
	attrs.Definer
	ContextSaver
	ContextDeleter
}

type ModelFunc added in v1.7.0

type ModelFunc func(c context.Context, m attrs.Definer) (changed bool, err error)

type Orderer added in v1.7.0

type Orderer struct {
	TableName string
	Quote     string
	Fields    []string
	Validate  func(string) bool
	Default   string
}

A struct for creating a valid SQL ordering string which should be compatible with most databases.

The ordering field is a list of strings which can be prefixed with a minus sign (-) to indicate descending order.

The ordering field is validated with the Validate function, which should return true if the field is valid for use in said database.

The default field is used if no ordering fields are provided, and is validated with the Validate function as well, it can also be prefixed with a minus sign (-) to indicate descending order.

func (*Orderer) Build added in v1.7.0

func (o *Orderer) Build() (string, error)

type Registry added in v1.7.0

type Registry[T any] interface {
	RegisterForDriver(driver any, backend Backend[T])
	BackendForDB(driver.Driver) (Backend[T], error)
}

func NewBackendRegistry

func NewBackendRegistry[T BaseQuerier[T]]() Registry[T]

type Saver

type Saver interface {
	Save() error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL