python - 如何在 django 模型中按个人将多对多分开?
问题描述
如何更改每位玩家的付款状态?我无法在此处添加状态字段,因为它会更改多对多字段中所有用户的状态,我想对其进行自定义以使每个用户具有不同的状态。
from django.db import models
from users.models import Profile
# Create your models here.
class Payments(models.Model):
match = models.CharField(max_length=30)
amount = models.DecimalField(default = 0, max_digits = 5, decimal_places = 2)
players = models.ManyToManyField(Profile)
datespent = models.DateField('Date Spent')
解决方案
我相信你想要这个:
from django.db import models
from users.models import Profile
class PlayerPayment(models.Model):
PENDING = 'pending'
PAID = 'paid'
STATUS_CHOICES = (
(PENDING, 'Pending',)
(PAID, 'Paid')
)
user_profile = models.ForeignKey(Profile)
payment_data = models.ForeignKey("PaymentData")
status = models.CharField(choices=STATUS_CHOICES, default=PENDING)
class PaymentData(models.Model):
match = models.CharField(max_length=30)
amount = models.DecimalField(default = 0, max_digits = 5, decimal_places = 2)
players = models.ManyToManyField(Profile, through=PlayerPayment)
datespent = models.DateField('Date Spent')
我冒昧地更改Payments
为,PaymentData
因为您的模型应该是单数形式,因为它们代表单个实体(即表中的单行)。
推荐阅读
- c# - 在 API HTTP 调用中使用永久令牌
- javascript - 如何使用活动选项卡菜单名称更新我的反应状态,以便它可以传递给端点调用?
- python - 如何根据条件分解熊猫并添加新的行和列
- android - 错误:找不到模块 'E:\my-project\android\undefined'
- python - 批处理文件错误 (PYTHON) - 原始错误为:导入 _multiarray_umath 时 DLL 加载失败:找不到指定的模块
- qt - 如何在 QML 中使用 MapPolyline 在任意时间后使路径消失?
- python - 如何检查列表中的项目是否在 Python 中的字符串中?
- java - 使用 DSS(CMS 容器)确保 LTV 验证
- python - 如何检测我在电报上的消息是否已使用 Telethon 阅读?
- c# - 运行我的脚本时不会加载 XAML WPF 表单