モデルのフィールドにカスタム属性を追加する方法はありますか(サブクラス化フィールドを使用せずに)?Django - モデルフィールドのカスタム属性
テンプレートの特定のセクションに特定のフィールドのみを表示したいとします。これは、最終的に各タイプのフィールドが別のタブに表示されるためです。各フィールドにカスタム属性を追加して、どのセクション/タブを入れるべきかを特定することを考えましたが、これまでのところ、私は運がありませんでした。
私はいくつかのフィールドタイプがあります。
class Enum(set):
def __getattr__(self, name):
if name in self:
return name
raise AttributeError
FieldTypes = Enum(["one","two","three",])
そして、いくつかのモデル:
class Model1(models.Model):
a = models.CharField()
b = models.ForeignKey('Model2')
c = models.IntegerField()
a.type = FieldTypes.one # this obviously doesn't work
b.type = FieldTypes.two # this obviously doesn't work
c.type = FieldTypes.three # this obviously doesn't work
class Model2(models.Model):
d = models.CharField()
とフォーム:
class Form1(forms.ModelForm):
class Meta:
model = Mode1
テンプレート:
{% for fieldType in FieldTypes %}
<div class="{{fieldType}}">
{% for field in form %}
{% if field.type = fieldType %}
{{ field }}
{% endif %}
{% endfor %}
</div>
{% endfor %}
しかし、これは動作しません。
アイデア?または、ページの特定のセクションに特定のフィールドのみを配置するための他の提案ですか?
ありがとうございました。
それはトリックを行うように見えます。どうもありがとう。 – trubliphone