EN VI

Python - Django data getting saved in wrong model Why its saving the Model B,C data in model A?

2024-03-12 18:00:13
Python - Django data getting saved in wrong model Why its saving the Model B,C data in model A

I have 3 django models CustomerDetail CarrierForm InfluencerModel When i am trying to save data in CarrierForm or InfluencerModel through different different page's forms its getting saved in model CustomerDetail Why its happening tell me what i am doing wrong?

Here is Model

class CustomerDetail(models.Model):
    full_name             = models.CharField(max_length=255, null=False, blank=False)
    email                 = models.EmailField(max_length=255, null=False, blank=False)
    contact_number        = models.CharField(max_length=10, null=False, blank=False)
    message               = models.TextField(null=False, blank=False)
    visited_on            = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.email


class CarrierForm(models.Model):
    full_name             = models.CharField(max_length=255, null=False, blank=False)
    email                 = models.EmailField(max_length=255, null=False, blank=False)
    contact_number        = models.CharField(max_length=10, null=False, blank=False)
    upload_resume         = models.FileField(null=False, blank=False)
    message               = models.TextField(null=True, blank=True)
    visited_on            = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.email


class InfluencerModel(models.Model):
    full_name = models.CharField(max_length=255, null=False, blank=False)
    email = models.EmailField(max_length=255, null=False, blank=False)
    contact_number = models.CharField(max_length=10, null=False, blank=False)
    instagram_id   = models.CharField(max_length=50, null=False, blank=False)
    message = models.TextField(null=True, blank=True)
    visited_on = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.email

    def get_absolute_url(self):
        return reverse("influencers", kwargs={'slug': self.slug})

Rendering the forms like this

<form action="{% url 'home' %}" role="form" class="php-email-form" method="post"> {% csrf_token %}
      <div class="row">
      {{ form.as_table }}
        <div class="col-md-6 form-group">
          {{ form.full_name.errors }}
          {{form.full_name|as_crispy_field}}
        </div>

        <div class="col-md-6 form-group mt-3 mt-md-0">
             {{ form.email.errors }}
             {{form.email|as_crispy_field}}
<!--                  <input type="email" class="form-control" name="email" id="email" placeholder="Your Email" required>-->
        </div>


      <div class="form-group col-md-6">
        {{ form.contact_number.errors }}
        {{form.contact_number|as_crispy_field}}
<!--                <input type="text" class="form-control" name="subject" id="subject" placeholder="Subject" required>-->
      </div>

      <div class="form-group col-md-6">
        {{ form.instagram_id.errors }}
        {{form.instagram_id|as_crispy_field}}
<!--                <input type="text" class="form-control" name="subject" id="subject" placeholder="Subject" required>-->
      </div>

          </div>



      <div class="form-group mt-3" rows="7">
        {{ form.message.errors }}
        {{form.message|as_crispy_field}}
<!--                <textarea class="form-control" name="message" rows="7" placeholder="Message" required></textarea>-->
      </div>
<!--              <div class="my-3">-->
<!--                <div class="loading">Loading</div>-->
<!--                <div class="error-message"></div>-->
<!--                <div class="sent-message">Your message has been sent. Thank you!</div>-->
<!--              </div>-->
       <div class="text-center">
        <button type="submit" class="btn btn-outline-secondary" style="background-color:#FF512F; color: white">Send Message</button>
     </div>
<!--              <div class="text-center"><button type="submit">Send Message</button></div>-->
    </form>

Urls

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', HomeView.as_view(), name='home'),
    path('influencers/', InfluencersPageView.as_view(), name='influencers'),
    path('carrier/', CarrierFormView.as_view(), name='carrier'),
    
    ]

Solution:

Since, you have only provided one template, I'd assume you're using the same form for all of those views you mentioned. Your form action is pointing to the same url home. at <form action="{% url 'home' %}" role="form" class="php-email-form" method="post"> {% csrf_token %} . Change that accordingly to whichever view you'd want your form to be processed by.

Answer

Login


Forgot Your Password?

Create Account


Lost your password? Please enter your email address. You will receive a link to create a new password.

Reset Password

Back to login