django 如何设置与某些字段的关系
django how to set relation to some fields
我想在那种情况下设置关系
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 的外键
我想 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
限于 SaleType
和 SaleType2
。还要保持 method
和 content_type
.
之间每一行的关系
我想在那种情况下设置关系
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 的外键
我想 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
限于 SaleType
和 SaleType2
。还要保持 method
和 content_type
.