简体   繁体   中英

When I submit this form, neither data is saved onto database nor giving any error in my django project

models.py here is my model

class Load_post(models.Model):
    user = models.ForeignKey(get_user_model(),on_delete=models.CASCADE)
    pick_up_station = models.CharField(max_length=150)
    destination_station = models.CharField(max_length=150)
    sender_name = models.CharField(max_length=150)
    phone_number = PhoneNumberField(null=False , blank=False , unique=True)
    receiver_name = models.CharField(max_length=150)
    sending_item = models.CharField(max_length=150)
    weight = models.CharField(max_length=150)
    metric_unit = models.CharField(max_length=30, default='SOME STRING')
    quantity = models.PositiveIntegerField(default=1)
    requested_shiiping_price = models.PositiveIntegerField()
    pick_up_time = models.DateField()
    drop_time = models.DateField()
    paid_by = models.CharField(max_length=150)
    created_at = models.DateTimeField(auto_now=True)
    published_date = models.DateField(blank=True, null=True)


def __str__(self):
    return self.user.username

def save(self, *args, **kwargs):
    super().save(*args, **kwargs)

def publish(self):
    self.published_date = timezone.now()
    self.save()

def get_absolute_url(self):
    return reverse('local')

class Meta:
    ordering = ["-created_at"]
    unique_together = ["sender_name", "receiver_name"]

please check the phone number

forms.py

this is form.py

class Loader_post_form(forms.ModelForm):
    phone_number = PhoneNumberField()
    metric_unit = forms.ChoiceField(choices=UNIT, required=True)

class Meta:
    model = Load_post
    fields = ("pick_up_station", "destination_station",
              "sender_name", "phone_number", "receiver_name",
              "sending_item","image_of_load","weight","metric_unit",
              "quantity","requested_shiiping_price","pick_up_time",
              "drop_time","paid_by")

views.py This is my views.py absolute URL used in models already

class Loader_post_view(CreateView, LoginRequiredMixin):
    login_url = 'Driver/login/'
    form_class = forms.Loader_post_form
    model = Loader_Signup
    template_name = "Driver/post.html"

def form_valid(self,form):
    form.instance.user = self.request.user
    form.save()
    return super(Loader_post_view,self).form_valid(form)

post.html this is html page (template)

    {% extends "Driver/base.html" %} 
    {% block content %}
    <h1>create a post</h1>
    {% csrf_token %} 
    {{form}}
    <button type="submit">submit</button> 
    {% endblock content %}

this is html code

how to add it to the database and I cannot see any error in my forms thank you am working on driver and client-side project

From what I see you html template cannot submit the form because you ae missing the <form> tags - if you do not have them hidden in your base.html.

Your html template should be something like this:

{% extends "Driver/base.html" %} 
    {% block content %}
    <h1>create a post</h1>
    <form method="POST">
        {% csrf_token %} 
        {{form}}
        <button type="submit">submit</button> 
    </form>
    {% endblock content %}

The {{ form }} renders the form with all the inputs but does not create the tags needed for html forms.

In addition there are some other errors in the code you posted.

In your view the model you defined is called Loader_Signup , however the model you posted is Load_post . Either you posted the wrong model or you declared the wrong model in your view.

In your form one field is called image_of_load , however, this field is not part of you model.

In your model you have got a field called phone_number , you are defining a field with the same name in your form. The field in your form has got no connection to your model so take it out.

Unfortunately you are not providing any details about your PhoneNumberField so this cannot be checked.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM