我是 Django 新手,在 Django 中实现这个模型时遇到了一些困难:
这是我的领域:
.
├── accounts
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ └── views.py
├── charities
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
慈善机构/model.py:
from django.db import models
from accounts.models import User
class Benefactor(models.Model):
ex_status = [
(0,'beginner'),
(1,'middle'),
(2,'expert'),
]
#id = models.BigAutoField(primary_key = True)
user = models.OneToOneField(User, on_delete = models.CASCADE)
exprience = models.SmallIntegerField(choices = ex_status, default = 0)
free_time_per_week = models.PositiveSmallIntegerField(default = 0)
class Charity(models.Model):
#id = models.BigAutoField(primary_key = True)
user = models.OneToOneField(User,on_delete = models.CASCADE)
name = models.CharField(max_length = 50)
reg_number = models.CharField(max_length = 10)
class Task(models.Model):
state_status = [
("P" , "pending"),
("W", "Waiting"),
("A", "Assigned"),
("D", "Done")
]
gender_limit_status = [
("M","Male"),
("F","Female"),
]
id = models.BigAutoField(primary_key = True)
assigned_bonefactor = models.ForeignKey(Benefactor, on_delete=models.CASCADE)
charity = models.ForeignKey(Charity, on_delete=models.CASCADE)
age_limit_from = models.IntegerField(blank=True,null=True,)
age_limit_to = models.IntegerField(blank=True,null=True,)
date = models.DateField(blank=True,null=True,)
description = models.TextField(blank=True,null=True,)
gender_limit = models.CharField(choices = gender_limit_status,max_length = 1)
state = models.CharField(max_length = 1,choices = state_status, default= 'P')
title = models.CharField(max_length = 100)
帐户/models.py:
from django.db import models
from django.contrib.auth.models import AbstractUser
import datetime
class User(AbstractUser):
gender_status = [
('M','Male'),
('F','Female'),
]
id = models.BigAutoField(primary_key=True)
address = models.TextField(blank=True,null=True)
age = models.PositiveSmallIntegerField(blank=True,null=True)
date_joined = models.DateField(default=datetime.date.today)
description = models.TextField(blank=True,null=True)
email = models.EmailField(blank=True,null=True)
first_name = models.CharField(max_length = 50,blank=True,null=True)
gender = models.CharField(max_length = 1,choices = gender_status,blank=True,null=True)
is_active = models.BooleanField(default = True)
is_staff = models.BooleanField(default = False)
is_superuser = models.BooleanField(default = False)
last_login = models.DateTimeField(blank=True,null=True)
last_name = models.CharField(max_length = 50, blank=True,null=True)
password = models.CharField(max_length = 24)
phone = models.CharField(max_length = 15, blank=True,null=True)
username = models.CharField(unique = True, max_length = 15)
但这不是真的,它有一个问题。
我的问题是继承以及如何实现这样的模型。我是 Django 模型的新手,在 Django 中实现这个模型时遇到了一些困难。
粗字段表示该字段的键(ForeinKey 或 PrimaryKey 或 ...)。
字段的模糊表示该字段是可选的。
斜体字段名表示该字段继承自父类并继承自父类。