作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Django 做什么
Django 的模型字段“空白”属性,以及当您创建模型表单时它被否定并变成表单字段“必需”属性的方式非常酷。它允许我在它所属的模型上设置属性,但在处理从它创建的 ModelForm 时具有可用的“必需”属性。在模板中渲染时使用“必需”意味着我可以做一些很酷的事情,比如在必填字段的显示标签上添加一个星号。
模型
class Employee(models.Model):
name = models.CharField(blank=False)
public_bio = models.TextField(blank=False)
salary= models.DecimalField(max_digits=15, decimal_places=2, blank=False)
personnel_notes = models.TextField(blank=True)
{% for field in form %}
<p>
{{ field.label }}{% if field.required %}*{% endif %}
{{ field }}
</p>
{% endfor %}
class Employee(models.Model):
name = models.CharField(blank=False, publishable=True)
public_bio = models.TextField(blank=False, publishable=True)
salary= models.DecimalField(max_digits=15, decimal_places=2, blank=False, publishable=False)
personnel_notes = models.TextField(blank=True, publishable=False)
{% for field in form %}
<p>
{{ field.label }}{% if field.required %}*{% endif %}
{% if field.publishable %}(may be published){% endif %}
{{ field }}
</p>
{% endfor %}
django.db.models.fields.Field.__init__()
甚至不接受 kwargs。如果这是不可能的,有什么解决方法可以获得所需行为的想法吗?
最佳答案
请注意,可发布应该是 forms.Field 上的属性,而不是 models.Field 上的属性,以便它出现在模板中。
您可以在表单启动时将其显式添加到您希望可发布的字段上,并且在呈现时您可以使用它:
class PublishableForm(forms.Form):
name = forms.CharField()
def __init__(*args, **kwargs)
super(PublishableForm, self).__init__(*args, **kwargs)
self.name.publishable = True
关于django - 如何在 Django 模型字段上设置任意属性,然后在 ModelForm 中访问它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3898967/
我是一名优秀的程序员,十分优秀!