Click here to Skip to main content
15,886,026 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I am trying to save data that fill out with form to database but it doesn't work as well. when i click on Submit button nothing change, the webpage just refresh!

These are my codes.

Views.py
Python
class HotelAdCreate(AuthorsAccessMixin,CreateView):
    model = HotelBookingAd
    form_class = HotelBookingAdForm
    template_name = "account/article-create-update.html"

    def form_valid(self,form):
        form.save()
        return super(HotelAdCreate).form_valid(form)


Forms.py

Python
class HotelBookingAdForm(forms.ModelForm):
    
    class Meta:
        model = HotelBookingAd
        fields = '__all__'

    def clean_sales_price(self):
        sales_price = self.cleaned_data["sales_price"]
        purchase_price = self.cleaned_data["purchase_price"]
        if sales_price > purchase_price:
            raise forms.ValidationError("error.")
            print("error")

        return sales_price


Edit : i just added template file codes to debaug clearly.

Template File

HTML
{% extends 'account/base.html' %}
{% load crispy_forms_tags %}

{% block title %}{% endblock %}
{% block title-meta %} آگهی{% endblock %}
{% block main %}
<div class="col-md-12">
    <div class="card card-primary">
        <div class="card-header">
            <h3 class="card-title- mb-0">ایجاد آگهی </h3>
        </div>
    <div class="card-body">    
        <form method="post" enctype="multipart/form-data">{% csrf_token %}
            <div class="row">
                <div class="col-6">
                    {{form.title|as_crispy_field}}
                </div>
                <div class="col-6">
                    {{form.hotel_name|as_crispy_field}}
                </div>
                <div class="col-12">
                    {{form.sale_reason|as_crispy_field}}
                </div>
                <div class="col-6">
                    {{form.check_in_date|as_crispy_field}}
                </div>
                <div class="col-6">
                {{form.check_out_date|as_crispy_field}}
                </div>
                <div class="col-6">
                    {{form.purchase_price|as_crispy_field}}
                </div>
                <div class="col-6">
                    {{form.sales_price|as_crispy_field}}
                </div>
                <div class="col-6">
                    {{form.city_name|as_crispy_field}}
                </div>
                <div class="col-6">
                    {{form.room_type|as_crispy_field}}
                </div>
                <div class="col-6">
                    {{form.confirm|as_crispy_field}}
                </div>
                {% if user.is_superuser %}
                <div class="col-6">
                    {{form.slug_generator|as_crispy_field}}
                </div>
                {% endif %}
                
            </div>
            <button class="btn btn-success">ارسال مقاله</button>
            {% if user.is_superuser and request.resolver_match.kwargs.pk %}
            <a class="btn btn-danger "href="{% url 'account:hotelad-delete' request.resolver_match.kwargs.pk %}">
            حذف مقاله
            </a>
            <a target="_blank" class="btn btn-dark "href="{% url 'primary:preview' request.resolver_match.kwargs.pk %}">
            پیش نمایش
            </a>
            {% endif %}
        </form>
    </div>
</div>
</div>
{% endblock %}


I've tried different options, but I don't have enough skills to handle this problem.

Can anyone help me?

What I have tried:

I have also tried a way without CreateView.
Posted
Updated 4-Apr-21 22:05pm
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900