python - 如何在 Django 模型的一对多字段中添加多个模型?
问题描述
我想在 OrderItem 项目字段上传递游戏 PC 和 pcComponent,以便我可以在项目字段中添加其中一个
class OrderItem(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE)
ordered = models.BooleanField(default=False)
item = models.ForeignKey(
gamingpc, on_delete=models.CASCADE, blank=True, null=True)
product = models.ForeignKey(
PcComponent, on_delete=models.CASCADE, blank=True, null=True)
解决方案
对于这种情况,您必须使用content-type 。
class OrderItem(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE)
content_object = GenericForeignKey()
object_id = models.CharField(max_length=100, null=True, blank=True)
content_type = models.ForeignKey(
ContentType, on_delete=models.CASCADE, null=True, blank=True,
limit_choices_to=(models.Q(model__in=['PcComponent', 'gamingpc']))
推荐阅读
- r - 滚动期回报:1 年、3 年和 5 年业绩的数量
- r - 在R中的for循环中使用双括号与单括号时出错
- java - 移除元素列表
在恒定时间内在 HashMap 内部 - mysql - MySQL选择列的值作为
- android - 在android中将日期格式转换为不同的日期格式
- javascript - document.querySelector 排除部分 DOM
- javascript - 查找以“lang”开头的类(不是节点)
- javascript - 如何通过office.js Office.initialize获取excel的单元格编号和工作表名称?
- c++ - 硬件“Hardware_id”没有使用安装部分“DriverInstall”的关联服务
- java - JsonHttpRH:onSuccess(int, Header[], JSONArray) 没有被覆盖,但是收到了回调?