簡體   English   中英

在Meta,Django Floppyforms中訪問表單變量

[英]Accessing form variables in Meta, Django Floppyforms

我使用的是帶有模型形式的軟盤形式,並且關於它們的唯一文檔是通過類Meta指定小部件。 但是,我希望我的textarea小部件占位符依賴於表單變量,而Meta無權訪問類變量。 在框架中實現此目標的任何提示?

現在,我已經在forms.py中找到了它:

class ChapterForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        self.placeholder = "Chapter " + (kwargs.pop('number'))
        super(ChapterForm,self).__init__(*args, **kwargs)
    class Meta:
        model = Chapter
        fields = ("name", "text", ...)
        widgets = {
            "name": PlaceholderInput(attrs={'placeholder':self.placeholder, 'class':'headline'}),
        }

我意識到我可以使用標准(非模型形式)形式並使用變量聲明字段/小部件,但是我想知道是否有一種方法可以在不犧牲模型驗證的情況下進行操作。

您可以通過字段的小部件定義這些屬性

from django.forms.widgets import TextInput

def __init__(self, *args, **kwargs):
    self.placeholder = "Chapter %s" % kwargs.pop('number')
    super(ChapterForm,self).__init__(*args, **kwargs)

    self.fields['name'].widget = TextInput(attrs={
        'class': "headline",
        'placeholder': self.placeholder
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM