django - Django 模型:多对多或一对多
问题描述
我试图弄清楚如何适当地创建 Order 和 Ticket 模型之间的关系。用户可以购买多张门票,并且会收到一个门票 ID——但是当用户支付门票数量(或门票 ID)时——我希望它显示带有门票 ID# 的订单 ID#。但是,我不确定如何创建 Ticket 和 Order 模型之间的关系。我什至需要 Order 才能加入 Ticket 模型吗?你有什么建议?我尝试使用 Order as many-to-many 与票的关系,但它似乎没有用。建议会有所帮助。
模型.py
class User(models.Model):
first_name=models.CharField(max_length=100)
last_name=models.CharField(max_length=100)
email=models.CharField(max_length=100)
password=models.CharField(max_length=100)
created_at=models.DateTimeField(auto_now_add=True)
updated_at=models.DateTimeField(auto_now=True)
class Ticket(models.Model):
venue=models.CharField(max_length=100)
quantity=models.PositiveIntegerField()
price=models.DecimalField(default=25.00, max_digits=5, decimal_places=2, null=True, blank=True)
loop=models.CharField(max_length=100)
purchaser = models.ForeignKey(User, related_name="purchases", on_delete=models.PROTECT)
created_at=models.DateTimeField(auto_now_add=True)
updated_at=models.DateTimeField(auto_now=True)
class Order(models.Model):
full_name=models.CharField(max_length=100)
cc_number=models.PositiveIntegerField()
exp_date=models.PositiveIntegerField()
cvc=models.PositiveIntegerField()
buyers=models.ManyToManyField(Ticket, related_name="bought_tickets")-----THIS HAS BEEN DELETED
created_at=models.DateTimeField(auto_now_add=True)
updated_at=models.DateTimeField(auto_now=True)
```
解决方案
为了方便,我建议使用带有用户的 ForeignKey 以及带有 Ticket 的 ForeignKey。一位用户可能有多个工单和多个订单。一个订单可能有多个票。
推荐阅读
- node.js - 如何将函数存储在 MongoDb 文档中,然后从那里读取并调用它?
- gimp - 像素区域比较
- spring - 值未显示到 Spring MVC 视图中
- javascript - 如何从另一个父道具获得道具?
- java - 升级 Java 和 Eclipse 版本
- c++ - 为什么该文件中的数据没有正确写入/读取?
- javascript - jQuery 库与内联脚本冲突
- javascript - NodeJS Express - GET/POST/PATCH/DELETE 在幕后的区别
- php - PHP Array from Database, set a row as Array title
- java - 我输入了正确的值,但打印了错误的值