[英]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.