django,抽象类模型中的许多领域,这是不可能的吗?
代码:django,抽象类模型中的许多领域,这是不可能的吗?,django,Django,代码: class Basemodel(models.Model): set = models.ManyToManyField(User, related_name="setset_set", symmetrical=False, through="Follow") class Meta : abstract = True class Post_1(Basemodel): post1 = models.CharField(max_length=50)
class Basemodel(models.Model):
set = models.ManyToManyField(User, related_name="setset_set", symmetrical=False, through="Follow")
class Meta :
abstract = True
class Post_1(Basemodel):
post1 = models.CharField(max_length=50)
class Post_2(Basemodel):
post2 = models.CharField(max_length=50)
class Follow(models.Model):
follower = models.ForeignKey(User, related_name="who_is_allowing",)
followee = models.ForeignKey(Basemodel, related_name="who_is_allowed",)
created_at = models.DateTimeField(auto_now_add=True,)
updated_at = models.DateTimeField(auto_now=True,)
def __str__(self):
return "%s follows %s at %s" %(self.follower, self.followee, self.updated_at)
在这些代码中,我想在抽象类中创建一个ManyToManyField
所以我想让用户可以关注Post\u 1或Post\u 2,无论它是什么类型的帖子。
还有更多,我想检查它是如何进行的Follow Class
,它在Basemodel
-set=models.ManyToManyField
-到kwargs
没有办法做到这一点吗?这种方法不起作用的原因是
followee
字段必须指向特定的数据库表Basemodel
,因为它是抽象的,所以没有自己的表。在Follow
表的每一行中,followee
必须引用Post_1
或Post_2
,但目前无法知道是哪一行。最简单的方法可能是去掉抽象的Basemodel
,并使用post\u type
字段将所有post保存在一个表中。这在很大程度上取决于帖子类型的不同程度,是否最终会有其他类型,以及您正试图实现的目标。@evergreen谢谢evergreen我对数据库表不太了解。这种方法不起作用的原因是followee
字段必须指向特定的数据库表Basemodel
,因为它是抽象的,所以没有自己的表。在Follow
表的每一行中,followee
必须引用Post_1
或Post_2
,但目前无法知道是哪一行。最简单的方法可能是去掉抽象的Basemodel
,并使用post\u type
字段将所有post保存在一个表中。这在很大程度上取决于帖子类型的不同,最终是否会有其他类型,以及您想要实现的目标。@evergreen谢谢evergreen我对数据库表还不太了解。