我想对许多模型使用user
foreignkey。我不能使用这种方法。是否有可能为所有外键提供通用名称。我想在每个模板中访问x.created
或x.updated
。
class Model_one(models.Model):
--
--
created = models.ForeignKey(User,related_name="created")
updated = models.ForeignKey(User,related_name="updated")
class Model_two(models.Model):
--
--
created = models.ForeignKey(User,related_name="created")
updated = models.ForeignKey(User,related_name="updated")
class Model_three(models.Model):
--
--
created = models.ForeignKey(User,related_name="created")
updated = models.ForeignKey(User,related_name="updated")
答案 0 :(得分:2)
为了概括你的方法,你可以做类似的事情:
class BaseModel(models.Model):
created = models.ForeignKey(User,related_name="created_%(class)s_objects")
updated = models.ForeignKey(User,related_name="updated_%(class)s_objects")
class Meta:
abstract = True
class ModelOne(BaseModel):
# your model one fields
class ModelTwo(BaseModel):
# your model two fields
用这种方法你
不需要明确定义所有模型上的相同字段,因为您从BaseModel
继承。
special syntax自动创建与正确的类名称的向后关系。因此user.created_modelone_objects.all()
将为您提供用户创建的所有对象。