Python CreateView未保存表单Django
我是Django的新手。我正在创建一个竞价网站,在那里用户应该能够访问一个页面来创建一个新的列表(他们将要提交的项目)。他们需要提交的表单有几个公共字段,有效时,应该保存所述表单 问题是,我的listingcreateview()并没有这样做。我提交了一个正确的表单,但它不会保存,它只是重定向到同一个表单页面,不会显示任何错误 这是因为提交的表单每次都被验证为无效。我之所以知道这一点,是因为我在listingcreateview()中添加了两个函数,第二个函数被调用 它以前工作正常,不知道是什么变化把它搞砸了。如果我手动添加管理界面信息,它将成功保存 views.py:Python CreateView未保存表单Django,python,django,Python,Django,我是Django的新手。我正在创建一个竞价网站,在那里用户应该能够访问一个页面来创建一个新的列表(他们将要提交的项目)。他们需要提交的表单有几个公共字段,有效时,应该保存所述表单 问题是,我的listingcreateview()并没有这样做。我提交了一个正确的表单,但它不会保存,它只是重定向到同一个表单页面,不会显示任何错误 这是因为提交的表单每次都被验证为无效。我之所以知道这一点,是因为我在listingcreateview()中添加了两个函数,第二个函数被调用 它以前工作正常,不知道是什么
class ListingCreateView(CreateView):
model = Listing
fields = ['title', 'content', 'image', 'min_bid', 'categories']
def form_valid(self, form):
form.instance.seller = self.request.user
return super().form_valid(form)
def form_invalid(self, form):
return HttpResponseRedirect(reverse("index"))
models.py:
class User(AbstractUser):
pass
class Listing(models.Model):
id = models.IntegerField(primary_key=True)
title = models.CharField(max_length=100)
image = models.ImageField(blank=False, upload_to='media')
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
categories = models.CharField(max_length=25, choices = category)
seller = models.ForeignKey(User, on_delete=models.CASCADE) ##
min_bid = models.FloatField(blank=False)
image_thumbnail = ImageSpecField(source='image', processors=[ResizeToFill(300, 150)], format='JPEG', options={'quality':100})
def get_absolute_url(self):
return reverse('listing-detail', kwargs={'pk': self.pk})
清单u form.html:
{% extends "auctions/layout.html" %}
{% block body %}
<h2> Create Listing </h2>
{% if message %}
<div>{{ message }}</div>
{% endif %}
{% if messages %}
<div class="alert alert-warning" role="alert">
{{ messages }}
</div>
{% endif %}
<div class="container">
<form method="POST" action="">
{% csrf_token %}
<label class="label">{{ form.title.label }}</label>
<div class="input">{{ form.title }}</div>
<label class="label">{{ form.content.label }}</label>
<div class="input">{{ form.content }}</div>
<label class="label">{{ form.image.label }}</label>
<div class="input">{{ form.image }}</div>
<label class="label">Minimal bid</label>
<div class="input">{{ form.min_bid }}</div>
<label class="label">{{ form.categories.label }}</label>
<div class="input">{{ form.categories }}</div>
<input type="submit" value="Submit">
</form>
</div>
{% endblock %}
您的表单无效,因为缺少表单
enctype=“multipart/form data”,这是完成工作的文件上载所需的,谢谢!!为什么几个小时前,即使没有它,它也能正常工作呢?我经常遇到这种情况,django的文件上传通常都是潜在的头痛问题
path("create-listing", login_required(ListingCreateView.as_view()), name="create-listing")