如果我没弄错的话
store_id
总是指向
C
type
如果是这样,您可以在这些模型之间建立正常关系并设置
存储\u id
基于
保存期间的字段:
class A(models.Model):
id=models.IntegerField(primary_key=True)
name=models.CharField(max_length=200)
store=models.ForeignKey(C)
type=models.ForeignKey(B)
def save(self,*args, **kwargs):
if self.type == some_type:
self.store = get_specific_store_here()
super(A, self).save(*args, **kwargs)
稍后,您可以通过以下方式访问商店名称:
# a is an object of model A
a.store.store
class A(models.Model):
id=models.IntegerField(primary_key=True)
name=models.CharField(max_length=200)
store_id=models.IntegerField()
type=models.ForeignKey(B)
def get_store_name():
store = C.objects.get(pk=self.store_id)
return store.store