我有100个标签的长列表,我需要我的模型作为字段,并且还连续调用以在代码的其他部分访问它们.我将来需要修改它们,所以我希望能够在一个地方进行修改.有一个简单的方法来做到这一点.例如:
labels = ['height', 'weight', 'age']
Run Code Online (Sandbox Code Playgroud)
在models.py中
class MyModel(models.Model):
for label in labels:
label = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
以上是否等于:
class MyModel(models.Model):
height = models.CharField(max_length=255)
weight = models.CharField(max_length=255)
age = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
Django模型有一个add_to_class方法可以向一个类添加一个字段(或任何属性).语法是MyModel.add_to_class(name, value).结果代码将是:
class MyModel(models.Model):
pass
for label in labels:
MyModel.add_to_class(label, models.CharField(max_length=255))
Run Code Online (Sandbox Code Playgroud)
在内部,contribute_to_class如果该方法存在,这将在传递的值上调用方法.静态属性按原样添加到类中,但是字段具有此方法,并且随后将进行所有后续处理.
| 归档时间: |
|
| 查看次数: |
1224 次 |
| 最近记录: |