Django - 记录用户的表单字段属性

时间:2017-06-29 12:33:01

标签: django django-authentication

我想将readonly属性添加到表单字段之一。这是我的forms.py文件的一部分:

class SiteAddFormFull(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(SiteAddFormFull, self).__init__(*args, **kwargs)

        self.fields['group'] = forms.ModelChoiceField(
            queryset=Group.objects.filter(is_active=True), initial='Podstawowy',
            help_text="<div id='group'><ul><li>Sample text</b></li></ul></div>",
            label="Rodzaj wpisu")

    url = forms.URLField(widget=forms.TextInput(attrs={'readonly': 'readonly'}),
                     label='Adres internetowy')
    kod = forms.CharField(label="Kod premium", required=False)
    user = forms.CharField(label="Nazwa użytkownika", 
widget=forms.TextInput(attrs={'readonly': 'readonly'}))
    if user_is_authenticated:
        email = forms.EmailField(label="Email adress", 
widget=forms.TextInput(attrs={'readonly': 'readonly'}))
    name = forms.CharField(widget=forms.TextInput(attrs={'style': 'min-width:30%'}))

我想将readonly属性添加到电子邮件字段中。我不知道如何在这里使用身份验证系统。我该怎么做而不是user_is_authenticaded?谢谢你的任何线索。

1 个答案:

答案 0 :(得分:0)

确定。我补充说:

email = self['email'].value()

if email is not None:
    self.fields['email'].widget.attrs.update({'readonly': 'readonly'})

低于super(SiteAddFormFull, self).__init__(*args, **kwargs)

每个用户都有电子邮件字段。它工作正常。一小时的试验和错误......它已经解决了。感谢。