ValueError at /accounts/register/

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)
1 Beğeni

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:https://docs.djangoproject.com/en/3.1/ref/forms/widgets/

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



Hemen Kayıt Olun




{% csrf_token %}
        <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: