我有一个模型Client
,它可以是以下两种类型之一:PJ
或PF
。这意味着 Client 可以具有PJ
模型的字段或PF
模型的字段。
但是我不确定如何使用Django的模型和 admin 应用程序来做到这一点。我想给用户一个选择 Client 是哪种类型的选项,然后适当的字段将显示给他/她。
有人可以帮助我解决这个问题吗?我应该使用某种设计模式还是应该创建模型?
谢谢。
模型PF
:
class PF(models.Model):
name = models.CharField(max_length=512)
card = models.IntegerField(unique=True)
模型PJ
:
class PJ(models.Model):
ie = models.IntegerField(unique=True, null=True, blank=True)
模型Client
:
class Client(models.Model):
type = models.SmallIntegerField(default=0) # 0=PF, 1=PJ
答案 0 :(得分:0)
首先,我建议您看一下这两个模型之间的共性,并尽可能使用继承。如果类型字段不可避免,我建议改用CharField with choices。
如果两个模型完全不同,我建议将这两个模型完全分开,并将它们命名为InternalClient,ExternalClient,但是名称对数据模型有意义。