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