You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.3 KiB
38 lines
1.3 KiB
from django.contrib.auth.models import User |
|
from django.db import models |
|
|
|
class Category(models.Model): |
|
name = models.CharField(max_length=32) |
|
slug = models.CharField(max_length=32, unique=True) |
|
info = models.TextField(max_length=1024, blank=True) |
|
photo = models.ImageField(blank=True) |
|
|
|
def __str__(self): |
|
return self.name |
|
|
|
class Tool(models.Model): |
|
category = models.ForeignKey(Category, related_name='tools', on_delete=models.PROTECT) |
|
name = models.CharField(max_length=32) |
|
slug = models.CharField(max_length=32, unique=True) |
|
info = models.TextField(max_length=1024, blank=True) |
|
wiki_id = models.IntegerField() |
|
photo = models.ImageField(blank=True) |
|
mac = models.CharField(max_length=12) |
|
|
|
def __str__(self): |
|
return self.name |
|
|
|
class Profile(models.Model): |
|
user = models.OneToOneField(User, on_delete=models.CASCADE, editable=False) |
|
lockout_admin = models.BooleanField(default=False) |
|
authorized_tools = models.ManyToManyField(Tool, blank=True) |
|
|
|
def __str__(self): |
|
return self.user.username |
|
|
|
class Card(models.Model): |
|
profile = models.OneToOneField(Profile, on_delete=models.CASCADE, editable=False) |
|
number = models.CharField(max_length=512) # TODO: normalize |
|
|
|
def __str__(self): |
|
return self.number
|
|
|