Почему я не могу сохранить содержимое моего шаблона в базе данных postgres?

В моем проекте Django есть модель для оценки арендованного автомобиля. Однако, когда я отправляю содержимое шаблона, кажется, что оно сохраняется в базе данных, но когда я проверяю в своей базе данных, таблица пуста. Я проверил весь свой код, но не могу найти ошибку. Пожалуйста, вот моя модель, представления, урлы и мой шаблон соответственно.

Модель:

class tb_CARS_COMMENTS(models.Model):
    SCORE_CHOICES = zip(range(6), range(6) )
    nom_client = models.CharField(max_length=250)
    vehicule = models.ForeignKey(tb_CARS, on_delete=models.CASCADE, null=True)
    qualite = models.PositiveSmallIntegerField(choices=SCORE_CHOICES, blank=False)
    prix = models.PositiveSmallIntegerField(choices=SCORE_CHOICES, blank=False)
    confort = models.PositiveSmallIntegerField(choices=SCORE_CHOICES, blank=False)
    conduite = models.PositiveSmallIntegerField(choices=SCORE_CHOICES, blank=False)
    email = models.EmailField(max_length=254)
    site_web = models.CharField(max_length=250, null=True, blank=True)
    Commentaires = models.TextField()
    
    def __str__(self):
        return 'Évaluation(Véhicule ='+ str(self.vehicule)+', Qualité ='+ str(self.qualite)\
        +', Prix ='+ str(self.prix)+', Confort ='+ str(self.confort)+', Conduite ='+ str(self.conduite)+')'

    class Meta:
        verbose_name='COMMENTAIRE'
        verbose_name_plural='COMMENTAIRES'

Мнения:

def AddComment(request):
    detail=get_object_or_404(tb_CARS_CONDITIONS,id=id)
    form=CARS_COMMENTForm(request.POST or None)
    if request.method == 'POST':
        if form.is_valid():
            print('Hello chef')
            obj, created = tb_CARS_COMMENTS.objects.update_or_create(
            vehicule=detail.vehicule_id,
            nom_client=request.GET.get('nom_client'),
            qualite=request.GET.get('qualite'),
            prix=request.GET.get('prix'),
            confort=request.GET.get('confort'),
            conduite=request.GET.get('conduite'),
            email=request.GET.get('email'),
            site_web=request.GET.get('site_web'),
            Commentaires=request.GET.get('Commentaires')
            )

        else:
            print('We are not reaching here')
            
    context={
        }
    return render(request,'Cars/comments.html', context )

Урлы:

app_name = 'website'
urlpatterns = [
    path('', views.HompePage, name='home_page'),
    path('about_page/', views.AboutPage, name='about_page'),
    path('contact_page/', views.ContactPage, name='contact_page'),
    path('service_page/', views.ServicePage, name='service_page'),
    path('liste_voiture/', views.ListeVoiture, name='liste_voirute'),
    path('vehicule/<int:id>/detail/', views.DetailsVoiture, name='vehicule_detail'),
    path('addComments/', views.AddComment, name='add_comments'),
]

Шаблон:

Надеюсь, вы найдете, где я допустил ошибки.

Сначала необходимо добавить идентификатор автомобиля к шаблонам URL и представлению AddComment.

Во-вторых, я бы предложил отображать сообщения об ошибках формы, чтобы увидеть, действителен ли ввод или есть какие-то проблемы.

В-третьих, вы должны использовать create() вместо update_or_create(), так как вы хотите добавлять новые комментарии, если форма была отправлена, а не обновлять существующие.

app_name = 'website'
urlpatterns = [
    path('', views.HompePage, name='home_page'),
    path('about_page/', views.AboutPage, name='about_page'),
    path('contact_page/', views.ContactPage, name='contact_page'),
    path('service_page/', views.ServicePage, name='service_page'),
    path('liste_voiture/', views.ListeVoiture, name='liste_voirute'),
    path('vehicule/<int:id>/detail/', views.DetailsVoiture, name='vehicule_detail'),
    path('vehicule/<int:car_id>/addComments/', views.AddComment, name='add_comments'),
]
def AddComment(request, car_id):
    detail=get_object_or_404(tb_CARS_CONDITIONS,id=car_id)
    form=CARS_COMMENTForm(request.POST or None)
    if request.method == 'POST':
        if form.is_valid():
            print('Hello chef')
            obj = tb_CARS_COMMENTS.objects.create(
                vehicule=detail.vehicule_id,
                nom_client=request.GET.get('nom_client'),
                qualite=request.GET.get('qualite'),
                prix=request.GET.get('prix'),
                confort=request.GET.get('confort'),
                conduite=request.GET.get('conduite'),
                email=request.GET.get('email'),
                site_web=request.GET.get('site_web'),
                Commentaires=request.GET.get('Commentaires')
            )
        else:
            print('We are not reaching here')
            
    context = {'form': form}
    return render(request,'Cars/comments.html', context )
<!-- Car Review Form-->
<div class="rn-review-form">
    <h2 class="rn-simple-title">Rédiger un commentaire</h2>
    <form action='' method="post">
        {% csrf_token %}

        <!-- error reporting -->
        {{ form.non_field_errors }}
        {% for field in form %}
          {% if field.errors %}
            <p class="alert alert-danger">{{ field.errors }}</p>
          {% endif %}
        {% endfor %}

        <!-- ... rest of your form template -->

    </form>
</div>
<!-- End Car Review Form-->
Вернуться на верх