Django Formlar Aracılığı ile Veri Kaydetme


#1

Django’da bir formum var. Bu form aracılığı ile veri kaydetmeye çalışıyorum ancak ilişkili tablo olduğu için hata veriyor.
Hata:

IntegrityError at /question/askQuestion
NOT NULL constraint failed: question_questionmodel.userID_id

View Kodlarım:

https://paste.ubuntu.com/p/8g6KtCN37c/

Kullanıcı ID’sini formda yollamak istemiyorum. Bu hatayı nasıl çözerim?


#2

AskQuestionForm(request.POST) kısmını AskQuestionForm(request.POST or None) yapıp dener misin?


#3

Hayır aynı hatayı yine veriyor.


#4

userID’nin indeksleri neler? (Primary key, unique, vb.)


#5

Kullanıcı modelim AbstractUser ile genişletilmiş. ID olarak AbstractUser ID’sini kullaniyorum. Id primary_key=True, auto_created=True bu özelliklere sahip.

https://paste.ubuntu.com/p/GRtYYGpBQ7/ -> Kullanıcı Modelim


#6

Hataya tekrar baktım da aslında indeksler ile çok bir alakası yok. NOT NULL kısıtı olan bu userID alanı bir şekilde null oluyor. Kodunuzda hata ayıklayıp request.user.id'nin None olmadığına emin olmanızı tavsiye ederim.


#7

Hatayı şu şekilde çözdüm. AskQuestionForm.save(commit=False) kısmını bir değişkene atadim ve bu şekilde çözdüm.
https://paste.ubuntu.com/p/P6D5mnHvNd/


#8

Kodlarınızı buraya da yapıştırabilirsiniz, daha kolay olur: Gönderilerdeki kod görünümü hakkında