簡體   English   中英

當我提交此表單時,數據既沒有保存到數據庫中,也沒有在我的 Django 項目中出現任何錯誤

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

models.py這是我的模型

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"]

請檢查電話號碼

表格.py

這是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這是我已經在模型中使用的 views.py 絕對 URL

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這是 html 頁面(模板)

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

這是 html 代碼

如何將其添加到數據庫中,我在表單中看不到任何錯誤,謝謝您正在處理驅動程序和客戶端項目

從我所看到的,html 模板無法提交表單,因為您缺少<form>標簽 - 如果您沒有將它們隱藏在 base.html 中。

你的 html 模板應該是這樣的:

{% 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 %}

{{ form }}使用所有輸入呈現表單,但不創建 html 表單所需的標簽。

此外,您發布的代碼中還有一些其他錯誤。

在您看來,您定義的模型稱為Loader_Signup ,但您發布的模型是Load_post 要么您發布了錯誤的模型,要么在您的視圖中聲明了錯誤的模型。

在您的表單中,一個字段稱為image_of_load ,但是,該字段不是您模型的一部分。

在您的模型中,您有一個名為phone_number的字段,您正在表單中定義一個具有相同名稱的字段。 您表單中的字段與您的模型沒有任何聯系,因此將其刪除。

不幸的是,您沒有提供有關您的 PhoneNumberField 的任何詳細信息,因此無法進行檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM