首页 > 解决方案 > 如何在 django 的单个字段上从多个模型创建外键

问题描述

我有多种型号,例如,

class Service1(models.Model):
   price = models.FloatField()
   description = models.TextField()

class Service2(models.Model):
   price = models.FloatField()
   monthly_binifit = models.CharField()
   description = models.TextField() 

class Service3(models.Model):
   price = models.FloatField()
   free_contact = models.IntegerField()
   monthly_binifit = models.CharField()
 
class Service4(models.Model)
   price = models.FloatField()
   monthly_binifit = models.CharField()
   description = models.TextField()
   other_binifit = models.CharField()

class Orders(models.Model):
     user = models.ForeignKey(User, on_delete=models.CASECAD)
     orders = models.ForeignKey((Service1, Service2, Service3, Service4), on_delete=models.CASECAD)

这怎么可能创建具有上述不同服务的订单

标签: djangodjango-models

解决方案


如果没有所有详细信息,我不完全理解您要做什么,但为什么您不能只将“服务”作为外键并将 Service1、Service2、Service3、Service4 作为服务对象中的对象?

    class Services(models.Model)
        service = (
        ('Service1', ('Service1')),
        ('Service2', ('Service2')),
        ('Service3', ('Service3')),
        ('Service4', ('Service4')),
    )

    name = models.CharField(choices=service)


    class Orders(models.Model)
        orders = models.ForeignKey(Services,)

推荐阅读