Django Veritabanına Kayıt

Çok uğraştım ama hata nerede bir türlü bulamadım. İstediğim kaydı veritabanına işleyemiyorum. Kodlar aşağıda nerede hata yapıyorum acaba?

views.py

def Job(request):

    jobform = JobListForm()
    if request.method == 'POST':
        #print('Printing Post:', request.POST)
        jobform = JobListForm(request.POST)
        if jobform.is_valid():
            jobform.save()
    
    
    joblist= JobList.objects.all()
    myJobFilter= JobListFilter(request.GET, queryset=joblist)
    joblist=myJobFilter.qs
   
    context = {'jobform':jobform, 'myJobFilter':myJobFilter, 'joblist':joblist}

    return render(request, 'firms/joblist.html', context)

forms.py

class JobListForm(ModelForm):
    class Meta:
        model = JobList
        fields = '__all__'

models.py

class JobList(models.Model):
    name = models.CharField(max_length=200,null=True)
   
    def __str__(self):
        return self.name

html


<div class="row">
  <div class="col-md">
    <div class="card card-body">
      <table class="table table-sm">
      
      
        <form method="POST" action="">
          
          {% csrf_token %}
          
          {{jobform}}
       
      </table>
  <button type="submit" class="btn btn-primary">Save</button>

        </form>

   </div>
  </div>
</div>

Hata mesajını atarmısınız ?

Hata mesajı yok Hocam. Kaydet butonuna basınca veriyi veritabanına aktarmıyor.

Peki normal html form ile denedinizmi ?

Kodun üst tarafı html. Ben üst taraf kalabalık etmesin diye çıkardım.

Ben buradan bahsediyorum :slight_smile:
Burdayı normal html form ile göndermeyi denedinizmi ?

Hayır denemedim. Ben hep bu yapıyı kullandım bugüne kadar. Aynı işlevi görüyorsa bir de onu araştırayım. Teşekkürler.

1 Beğeni

Kodları bu şekliyle denediğimde bir hata almadım, bende kaydediyor. Sizde neden kaydetmediğini anlamamız için konsol çıktılarını almamız gerek. Bendeki çıktı şu şekilde.

[07/Dec/2021 21:50:11] "POST /job/ HTTP/1.1" 200 408

Yani başarılı bir şekilde POST isteği attım ve isteğim işlenmiş. Veritabanını kontrol ettiğimde de verinin kaydedilmiş olduğunu gördüm.

Sorun çözüldü ama doğrusunu mantığını anlamadım. Sayfada 3 bölüm vardı. En üstte girilen verileri süzüp ekrana veren bölüm. Altında veriler. En altta da yeni veri girişi bölümü.
Ben sadece en alttaki kodları ortaya aldım ve çalıştırdım. Bu sefer veriyi kaydetti. Ama ne oldu nasıl oldu hiç anlamadım. Sadece kodun yerini değiştirmek nasıl işe yaradı hayret. Vardır bir hikmeti dedim geçtim.