Python django模型对自身属性的引用
当我创建一个Django模型时,我想将主键/ID设置为该模型的两个属性的组合 示例模型: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)
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")