首页 > 解决方案 > 如何在 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)

标签: pythondjangodjango-modelsdjango-rest-framework

解决方案


对于这种情况,您必须使用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']))


推荐阅读