【问题标题】:django how to set relation to some fieldsdjango如何设置与某些字段的关系
【发布时间】:2020-04-09 14:09:31
【问题描述】:

我想在这种情况下设置关系

class SaleType(models.Model):
    price = models.CharField(max_length=50)
    contract = models.CharField(max_length=50)

    def __str__(self):
        return str(self.price)

class SaleType2(models.Model):
    totalContract = models.CharField(max_length=50)
    requierd = models.CharField(max_length=50)

    def __str__(self):
        return str(self.totalContract)

class ForSale(models.Model):
    method = models.ForeignKey(Method, on_delete=models.CASCADE)

    def __str__(self):
        return str(self.method)

如果 ForSale 中的方法 = Cash 获取 SaleType 的外键

如果 ForSale 中的方法 = Rent 获取 SaleType2 的外键

【问题讨论】:

    标签: python django django-models django-admin


    【解决方案1】:

    我认为GenericForeignKey 是您正在寻找的。更多详情here.

    class ForSale(models.Model):
        method = models.CharField(choices=(('Cash', 'cash'), ('Rent', 'rent')), ...)
        content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
        object_id = models.PositiveIntegerField()
        content_object = GenericForeignKey('content_type', 'object_id')
        ...
    

    添加验证以支持 content_type 仅限于 SaleTypeSaleType2。还要维护methodcontent_type 之间每一行的关系。

    【讨论】:

    • 可能是this 可能有帮助
    猜你喜欢
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 2012-04-29
    • 2013-09-29
    相关资源
    最近更新 更多