Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python CreateView未保存表单Django_Python_Django - Fatal编程技术网

Python CreateView未保存表单Django

Python CreateView未保存表单Django,python,django,Python,Django,我是Django的新手。我正在创建一个竞价网站,在那里用户应该能够访问一个页面来创建一个新的列表(他们将要提交的项目)。他们需要提交的表单有几个公共字段,有效时,应该保存所述表单 问题是,我的listingcreateview()并没有这样做。我提交了一个正确的表单,但它不会保存,它只是重定向到同一个表单页面,不会显示任何错误 这是因为提交的表单每次都被验证为无效。我之所以知道这一点,是因为我在listingcreateview()中添加了两个函数,第二个函数被调用 它以前工作正常,不知道是什么

我是Django的新手。我正在创建一个竞价网站,在那里用户应该能够访问一个页面来创建一个新的列表(他们将要提交的项目)。他们需要提交的表单有几个公共字段,有效时,应该保存所述表单

问题是,我的listingcreateview()并没有这样做。我提交了一个正确的表单,但它不会保存,它只是重定向到同一个表单页面,不会显示任何错误

这是因为提交的表单每次都被验证为无效。我之所以知道这一点,是因为我在listingcreateview()中添加了两个函数,第二个函数被调用

它以前工作正常,不知道是什么变化把它搞砸了。如果我手动添加管理界面信息,它将成功保存

views.py:

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