rah*_*tns 1 django django-models
我知道我可以verbose_name像这样在每个模特的领域
form_name = models.CharField('Form Name', max_length = 100)
Run Code Online (Sandbox Code Playgroud)
如果我想仅针对特定视图/案例更改特定字段的名称,该怎么办?
例如,在某种情况下,我希望它是“您的表单名称”,在另一种情况下,我希望它是“他的表单名称”,等等。
提前致谢。
我认为你混淆了模型和形式。模型用于存储和操作数据。它还实现业务逻辑的语义层。
表单用于构建供用户输入数据的便捷方式。表单可以针对特定模型。但情况本身并非如此:某些表单同时操作不同的模型实例,或者根本不操作模型,或者仅操作特定模型的一部分。
可以通过不同的形式来操纵模型。例如,一种形式可以更新模型实例的某个子集,而另一种形式可以更新另一个子集。这个想法是,模型通常不知道编辑模型的表单,而针对模型的表单需要一些关于模型的知识(至少要编辑有限的字段列表)。
为了回答您的问题,您通常会定义一个模型,例如:
class SomeModel(models.Model):
name = models.CharField(max_length = 100, verbose_name='Label 1')Run Code Online (Sandbox Code Playgroud)
现在默认情况下ModelForms 将采用 theverbose_name作为标签,但您可以覆盖它。例如,我们可以定义两种都针对的形式SomeModel:
class SomeModelForm1(ModelForm):
class Meta:
model = SomeModel
fields = ['name']
class SomeModelForm2(ModelForm):
class Meta:
model = SomeModel
fields = ['name']
labels = {'name': 'Label 2'}Run Code Online (Sandbox Code Playgroud)
因此,第二种形式将使用另一种形式label作为该name字段。
| 归档时间: |
|
| 查看次数: |
3457 次 |
| 最近记录: |