04 Nisan 2019 06:55

Muslu Y.

Django

__init__() got an unexpected keyword argument user

Anasayfa

Django

__init__() got an unexpected keyword argument user...

Django projelerinizde aşağıdaki hatayı alıyorsanız sebebi ModelForm ile views.py de tanımladığınız Form un eşleşmemesi. Yani views.py de ki Form() içine user değişkenini tanımlamadınız.

__init__() got an unexpected keyword argument user

 

views.py

def urun_olustur(request):
  if request.method == 'POST':
    form = UrunlerForm(request.POST, kim=request.user)
    if form.is_valid():
      form.save()
      return HttpResponseRedirect("/")
  else:
    form = UrunlerForm(kim=request.user)
  return render(request, 'urunler.html', {'form': form})
 

forms.py

class UrunlerForm(ModelForm):
  def __init__(self, *args, **kwargs):
    kim = kwargs.pop('kim', '') ## views.py deki UrunlerForm(kim=request.user)
    super().__init__(*args, **kwargs)
    self.fields['urun_adi'].required = True

    print(kim)
 

models.py

class Urunler(models.Model):
  urun_adi = models.CharField(max_length=200, verbose_name='Ürün Adı', unique=True)
  aciklama = models.CharField('Ürün Açıklaması', max_length=255, blank=True)

  def __str__(self):
    return self.urun_adi

  class Meta:
    verbose_name = 'Ürün'
    verbose_name_plural = '01 - Ürünler'
 

Django

hakkında diğer konular

Makdos Bilişim Teknolojileri 2015 - 2025