在Django中将子类的模型字段设置为primary_key

时间:2016-06-04 00:07:58

标签: python django django-models

我有一个抽象的模型类:

class AbstractClass(models.Model):
    filename_base = models.CharField(max_length=25, blank=True, null=True)

    class Meta:
        abstract = True

是否可以将primary_key的子类设置为此字段而不重写字段定义本身?我已经尝试过下面的课程定义,

class ChildClass(AbstractClass):
    filename_base.primary_key = True

但它会引发NameError: name 'filename_base' is not defined

1 个答案:

答案 0 :(得分:1)

我希望这会有所帮助。

class ChildClass(AbstractClass):
    pass
ChildClass._meta.get_field('filename_base').blank = False
ChildClass._meta.get_field('filename_base').null = False
ChildClass._meta.get_field('filename_base').primary_key = True

主键应为空= False且null = False。

注意:在AbstractClass id已经有主键我的答案是针对NameError。