2017-06-29 65 views
0

我想將readonly屬性添加到表單字段之一。這是我的forms.py文件的一部分:Django - 登錄用戶的表單字段屬性

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%'})) 

我想添加只讀屬性到電子郵件字段。我不知道我怎麼能在這裏使用認證系統。我應該放什麼而不是user_is_authenticaded?感謝任何線索。

回答

0

好的。我說:

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

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

下面super(SiteAddFormFull, self).__init__(*args, **kwargs)

每個用戶都有電子郵件字段。它工作正常。一小時的試驗和錯誤......它被解決了。謝謝。