Python django模型对自身属性的引用

Python django模型对自身属性的引用,python,django,django-models,Python,Django,Django Models,当我创建一个Django模型时,我想将主键/ID设置为该模型的两个属性的组合 示例模型: class Example(models.Model): name = models.CharField(max_length=100) date = models.DateTimeField(default=now) id = models.CharField(max_length=100, default="{}-{}".format(name, date)

当我创建一个Django模型时,我想将主键/ID设置为该模型的两个属性的组合

示例模型:

class Example(models.Model):
    name = models.CharField(max_length=100)
    date = models.DateTimeField(default=now)

    id = models.CharField(max_length=100, default="{}-{}".format(name, date) primary_key=True)
但他保存的是模型,而不是价值观:

 field=models.CharField(default='<django.db.models.fields.related.ForeignKey>-<django.db.models.fields.DateTimeField>', max_length=100, primary_key=True, serialize=False),

testmodel id应该看起来像这样的“foo-2020-12-11…”

我认为你做不到。因为这些值是在创建对象时初始化的。您可以做的是创建自己的类方法来初始化这些值


class Example(models.Model):
    name = models.CharField(max_length=100)
    date = models.DateTimeField(default=now)

    id = models.CharField(max_length=100, primary_key=True)
    # In User class declaration


    @classmethod
    def create(cls,name, date):
        return cls(name=name, date=date, id="{}-{}".format(name,date))

在课堂外像这样使用它

p = Example.create("Fred", "11-12-2020")

非常感谢。我要试试这个。
p = Example.create("Fred", "11-12-2020")