Başlıkta belirtildiği gibi, form widget'larındaki yer tutucu özniteliği düzgün gösterilmiyor. Rastgele, bazen iyi çalışıyor ve bazen göstermesi için tarayıcıyı yenilemem gerekiyor. Şablondaki alan etiketlerini göstermediğim için onlara ihtiyacım var. Neyse burada kodudur:django form yer tutucu düzgün göstermiyor
#FORMS.PY
class RegistrationForm(UserCreationForm):
first_name = forms.CharField(label=_('First name'), max_length=30)
last_name = forms.CharField(label=_('Last name'), max_length=30)
email = forms.EmailField(label=_("Email"), required=True)
class Meta:
model = User
fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2')
def __init__(self, *args, **kwargs):
super(RegistrationForm, self).__init__(*args, **kwargs)
# Set field Label as Placeholder for every field
for field in self.base_fields.values():
field.widget.attrs["placeholder"] = field.label
# Set HTML and CSS attributes to the fields
self.fields['username'].widget.attrs.update({'class':TEXTINPUT_CSS})
self.fields['email'].widget.attrs.update({'class':EMAILINPUT_CSS})
self.fields['password1'].widget.attrs.update({'class':PASSWORDINPUT_CSS})
...
i Django geliştirme sunucusu kullanıyorum Bu arada, sorun sunucu yavaş olmasından gelebilir.
i geliştirme sunucuyu başlatın ve giriş deneyin:
#views.py
def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
form.save()
if REGISTER_EMAIL_CONFIRMATION == True:
# Add email confirmation
username = form.cleaned_data['username']
email = form.cleaned_data['email']
salt = hashlib.sha1(str(random.random()).encode('utf-8')).hexdigest()[:5]
activation_key = hashlib.sha1((salt+email).encode('utf-8')).hexdigest()
key_expires = datetime.datetime.today() + datetime.timedelta(CONFIRMATION_KEY_EXPIRE_DAYS)
# Create and save User Profile
user=User.objects.get(username=username)
new_profile = UserProfile(user=user, activation_key=activation_key, key_expires=key_expires)
new_profile.save()
# Send email with activation key
subject_file = 'app_authentication/email_signup_confirm_subject.txt'
body_file = 'app_authentication/email_signup_confirm_body.html'
context = {'username':username, 'activation_key':activation_key}
send_email_from_files([email], subject_file, body_file, context)
return redirect('confirm_email_sent')
else:
return redirect('register_success')
else:
form = RegistrationForm()
return render(request, 'registration/register.html', {'form': form, 'title': _('Register')})
#register.html
{% block content2 %}
<form id="register_form" autocomplete="off" method="post" action="{% url 'register' %}">
{% csrf_token %}
<div class="clearfix">
{% for field in form %}
<div class="form-group">
{{ field }}
{% if form.errors %}
{% for error in field.errors %}
<div class="alert alert-error">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}
</div>
{% endfor %}
{% if form.errors %}
{% for error in form.non_field_errors %}
<div class="alert alert-error">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}
</div>
<!-- Send Button -->
<div class="pt-10">
<button class="submit_btn btn btn-mod btn-medium btn-round btn-full" id="reg-btn" name="submit">{{ title }}</button>
</div>
</form>
{% endblock content2 %}
Ekran istendiği gibi Views.py ve şablonu: Herhangi bir yardım
Edit mutluluk duyacağız
Tarayıcıyı yeniledikten sonra aynı giriş sayfası:
@akarilimano:
class LoginForm(AuthenticationForm):
# username doesn't have label in AuthenticationForm
username = forms.CharField(label=_("Username"), max_length=254)
def __init__(self, *args, **kwargs):
super(LoginForm, self).__init__(*args, **kwargs)
# Set field Label as Placeholder for every field
for field in self.base_fields.values():
print(field.label)
field.widget.attrs['placeholder'] = field.label
Eğer tutucuları ne çıktı alıyorsanız? Bu şimdiye kadar çalışması gerektiği gibi görünüyor. – Mikeec3
Beklenen sonucu alıyorum (etiketler yer tutucu olarak kullanılıyor) ama ben sadece 7'den 7 kez çıkıyorum. Çalışmıyorsa boş form alanları (yer tutucu yok) alıyorum. Aynı sorunla aynı oturum açma formunda da aynı sorunu yaşıyorum. –
@khalilan bunlar giriş sayfası için ekranlar, kayıt sayfası aynı sorunlara sahip mi? Giriş için de kod (form, görünüm) sağlayabilir misiniz? – akarilimano