Treeback Çıktsı:
https://dpaste.com/AGEAD9359
Bu da views.py dosyam:
https://paste.ubuntu.com/p/zSQ6bbdbpp/
Username boş diyor ama nasıl düzelteceğimi anlamadım
Treeback Çıktsı:
https://dpaste.com/AGEAD9359
Bu da views.py dosyam:
https://paste.ubuntu.com/p/zSQ6bbdbpp/
Username boş diyor ama nasıl düzelteceğimi anlamadım
bir kullaniciyi register etmek icin cleaned data metodu kullanilir.siz bunu kullanmadiginiz icin django kullanici ismini bos algiliyor.bende ornek bir register view var.bu viewe gore kendi viewinizi duzenleye bilirsiniz:
def register_view(request):
if request.user.is_authenticated:
return redirect("/")
if request.session['dil'] == "az":
form = registerform(request.POST or None)
context = {
"form": form,
'title': 'Qeydiyyatdan Keç'
}
elif request.session['dil'] == "tr":
form = turkregisterform(request.POST or None)
context = {
"form": form,
'title': 'Kayıt ol'
}
if form.is_valid():
user = form.save(commit=False)
password = form.cleaned_data.get('password1')
user.set_password(password)
# user.is_staff = user.is_superuser = True
user.save()
new_user = authenticate(username=user.username, password=password)
login(request, new_user)
request.session['dil'] == "az"
return redirect('base')
return render(request, "logintemp.html",context)
Sanırım arkadaşta forms.py yok. Bu yüzden kodlarınızdaki form
'un nereden geldiğini de paylaşmak lazım.
Bir başka örnek olsun diye paylaşıyorum:
forms.py
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
class UserRegisterForm(UserCreationForm):
email = forms.EmailField()
class Meta:
model = User
fields = ["username", "email", "password1", "password2"]
views.py
from django.contrib import messages
from .forms import UserRegisterForm
from django.shortcuts import render, redirect
def register(request):
if request.method == "POST":
form = UserRegisterForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get("username")
messages.success(request, "Hesabınız oluşturuldu! Artık giriş yapabilirsiniz.")
return redirect("login")
else:
form = UserRegisterForm()
return render(request, "users/register.html", {"form": form})
Evet forms.py dosyası bulunmuyor. Forms.py’ı kullandığımda kötü bir formu görünümü oluşuyordu. Django ile uğraşan birine sorduğumda kendi formu yap demişti.
widgetleri kullana bilirsiniz.widgetli bir form ornegi birakiyorum:
class turkform(forms.ModelForm):
class Meta:
model = elan
fields = [
'cixis_yeri',
'catma_yeri',
'cixis_vaxti',
'catma_vaxti',
'elaqe_nomresi',
'elave_melumatlar',
'sirket',
]
labels = {
'cixis_yeri':"Çıkış Yeri(Ülke-Şehir formatında olmalı)",
'catma_yeri':"Varma Yeri(Ülke-Şehir formatında olmalı)",
'cixis_vaxti':"Çıxış Zamanı",
'catma_vaxti':"Varma Zamanı",
'elaqe_nomresi':"Telefon(Ülke Koduyla Birlikde Olmalıdır!)",
'elave_melumatlar':"Ek Bligiler",
'sirket':"Şirket",
}
widgets = {
'cixis_yeri': forms.TextInput(attrs = {'class':'form-control kendi','placeholder':'Ülke-Şehir','id':"exampleFormControlInput1"}),
'catma_yeri': forms.TextInput(attrs = {'class':'form-control kendi','placeholder':'Ülke-Şehir'}),
'cixis_vaxti': forms.DateInput(attrs = {'class':'Çıxış Zamanı','type':'date'}),
'catma_vaxti': forms.DateInput(attrs = {'class':'Varma Zamanı','type':'date'}),
'elave_melumatlar': forms.Textarea(attrs = {'class':'form-control kendi','placeholder':'Ek Bligiler(Opsiyonel)','type':'text','id':'exampleFormControlTextarea1','rows':'6','columns':'2'}),
'sirket': forms.TextInput(attrs = {'class':'form-control kendi','placeholder':'Şirket(Opsiyonel)','type':'text','id':'exampleFormControlTextarea1','rows':'6','columns':'2'}),
'elaqe_nomresi': forms.NumberInput(attrs = {'class':'form-control kendi','placeholder':'Orneyin:+994xxxxxxxxx','id':"exampleFormControlInput1"}),
}
ayrica templatede de su sekilde yapa bilirsiniz:
{% csrf_token %}
<div class="benimclassim">{{ form.isiminput }}</div>
Daha detayli:Widgets | Django documentation | Django
ben bootstraple yaptığım formdan direk işlemler yapabilir miyim. Forms.py ile uğraşmadan
eger kastetdiginiz forms.py dosyasi olmadan form islemlerini yapmak ise bildigim kadariyla hayir.
DUZENLEME:
soyle bir sey buldum:
bu benim tasarladığım form. Ben buradan alınan verilerle ile direkt kayıt yapamaz mıyım
{% extends ‘layout.html’ %}
{% block nav-left %}
Giriş Yap
Ücretsiz Kayıt Ol
{% endblock %}
{% block content %}
<div class="form-group">
<label for="username">Kullanıcı Adınız:</label>
<input type="text" id="username" class="form-control" placeholder="Kullanıcı Adı" required>
</div>
<div class="form-group">
<label for="mail">E-Mail Adresiniz:</label>
<input type="email" id="mail" placeholder="Mail Adresi" class="form-control" required>
</div>
<div class="form-group">
<label for="password">Şifreniz:</label>
<input type="password" id="password" class="form-control" placeholder="Şifre" required>
</div>
<div class="form-group">
<label for="repassword">Şifrenizi Tekrarlayın:</label>
<input type="password" id="repassword" class="form-control" placeholder="Şifre Tekrar" required>
</div>
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="exampleCheck1" required>
<label class="form-check-label" for="exampleCheck1"><a href="">Kullanım Koşulları</a> ve <a href="">Gizlilik Polistikasını</a> Okudum, Onaylıyorum</label>
</div>
<button class="btn btn-primary btn-block mt-3" type="submit">Kayıt Ol</button>
</form>
</div>
</div>
</div>
{% endblock %}
bildigim kadariyla yinede forms.py dosyasina ihtiyaciniz olacak.zorluk olmamasi acisindan register ve login icin detayli bir forms.py dosyasi paylasiyorum:https://dpaste.com/99LCT5LX3
ayrica Şu adresde django ile yaptigim register,login ve logout sistemi olan bir site var.bakmak isteye bilirsiniz.
işte forms.py kullandığım zaman kendi istediğim formu kullanımıyorum. Bu forms.py ile yapılan formalar da kaliteli değil
Dedim ya: