Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django,抽象类模型中的许多领域,这是不可能的吗?_Django - Fatal编程技术网

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我对数据库表还不太了解。