2010-05-11 11 views
8

Mam stronę Django, w której administrator witryny wprowadza swoją nazwę użytkownika/hasło na Twitterze, aby korzystać z Twitter API. Model jest skonfigurowany tak:Dokonywanie CharField używać PasswordInput w admin

class TwitterUser(models.Model): 
screen_name = models.CharField(max_length=100) 
password = models.CharField(max_length=255) 
def __unicode__(self): 
    return self.screen_name 

muszę witrynę administratora, aby wyświetlić pole password jako wejście hasła, ale nie wydaje się, aby dowiedzieć się, jak to zrobić. Próbowałem za pomocą ModelAdmin klasę, A ModelAdmin z ModelForm, ale nie wydaje się, aby dowiedzieć się, jak sprawić, by wyświetlacz django które tworzą jako wejście hasłem ...

Odpowiedz

18

Od the docs, można zbudować swoją własną formę, coś takiego:

from django.forms import ModelForm, PasswordInput 

class TwitterUserForm(ModelForm): 
    class Meta: 
     model = TwitterUser 
     widgets = { 
      'password': PasswordInput(), 
     } 

Albo można zrobić to like this:

from django.forms import ModelForm, PasswordInput 

class TwitterUserForm(ModelForm): 
    password = forms.CharField(widget=PasswordInput()) 
    class Meta: 
     model = TwitterUser 

nie mam pojęcia co jest lepsze - ja lekko wolą pierwszy, ponieważ oznacza to, że będziesz nadal ge t dowolny help_text i verbose_name ze swojego modelu.

Niezależnie od tego, która z tych dwóch podejść można podjąć, można następnie dokonać administrator użyć formularza następująco (w swojej aplikacji admin.py):

from django.contrib import admin 

class TwitterUserAdmin(admin.ModelAdmin): 
    form = TwitterUserForm 

admin.site.register(TwitterUser, TwitterUserAdmin) 
+0

ja też powiedziałbym przejść do pierwszego, jestem nie wiem, czy czysta metoda hasła będzie taka sama w drugiej wersji. – KillianDS

+0

Dzięki, widziałem to w dokumentach, ale zapomniałem dodać ', TwitterUserAdmin' do linii' admin.site.register', więc oczywiście nie działało dobrze. Dzięki! –

+0

@Paul - nie ma problemu, cieszę się, że mogłem pomóc! –

Powiązane problemy