无法创建Django CreateView对象,因为数据没有';无法验证

无法创建Django CreateView对象,因为数据没有';无法验证,django,django-forms,Django,Django Forms,你好 我试图基于表单输入创建一个对象,我测试了数据,所有内容都提供了,但是由于某种原因表单没有被验证 我也尝试过重写form\u valid(self,form),但该方法的问题是django从未像它不存在一样去访问它 forms.py class CreatePostForm(forms.ModelForm): class Meta: model = Post fields = '__all__' class CreatePost(CreateView

你好

我试图基于表单输入创建一个对象,我测试了数据,所有内容都提供了,但是由于某种原因表单没有被验证

我也尝试过重写
form\u valid(self,form)
,但该方法的问题是django从未像它不存在一样去访问它

forms.py

class CreatePostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = '__all__'
class CreatePost(CreateView):
    form_class = CreatePostForm
    template_name = 'dashboard/add-product.html'

    # success_url = redirect('user_posts:post_detail')

    def post(self, request, *args, **kwargs):
        form = CreatePostForm(request.POST)
        if self.form_valid(form):
            post = form.save(commit=False)
            post.user = request.user
            post.save()
            return redirect('user_posts:post_detail', args=post.slug)
        print('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
视图.py

class CreatePostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = '__all__'
class CreatePost(CreateView):
    form_class = CreatePostForm
    template_name = 'dashboard/add-product.html'

    # success_url = redirect('user_posts:post_detail')

    def post(self, request, *args, **kwargs):
        form = CreatePostForm(request.POST)
        if self.form_valid(form):
            post = form.save(commit=False)
            post.user = request.user
            post.save()
            return redirect('user_posts:post_detail', args=post.slug)
        print('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
模板中的代码是基本形式,而不是导入它

通过
request.POST传递的数据

user    

'b8a3b0b3-0eef-48ed-b257-a6f9bfdd5cda'

title   

'theetitle'

main_description    

'agdgdfg'

slug    

''

main_image  

'Bucee_Lee_smile.jpg'

subtitle1   

''

sub_description1    

''

sub_image1  

''

subtitle2   

''

sub_description2    

''

sub_image2  

''

subtitle3   

''

sub_description3    

''

sub_image3  

''

total_likes     

''
回溯指向此行的点

型号

class Post(models.Model):
    id = models.UUIDField(default=uuid.uuid4, primary_key=True, editable=False)
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    title = models.CharField(max_length=200, unique=True)
    main_description = models.TextField()
    slug = models.SlugField(db_index=True, blank=True)
    main_image = models.ImageField(upload_to=upload_image)
    subtitle1 = models.CharField(max_length=200, blank=True, null=True)
    sub_description1 = models.TextField(blank=True, null=True)
    sub_image1 = models.ImageField(upload_to=upload_image,
                                   blank=True, null=True)
    subtitle2 = models.CharField(max_length=200, blank=True, null=True)
    sub_description2 = models.TextField(blank=True, null=True)
    sub_image2 = models.ImageField(upload_to=upload_image,
                                   blank=True, null=True)
    subtitle3 = models.CharField(max_length=200, blank=True, null=True)
    sub_description3 = models.TextField(blank=True, null=True)
    sub_image3 = models.ImageField(upload_to=upload_image,
                                   blank=True, null=True)
    posts_liked = models.ManyToManyField(settings.AUTH_USER_MODEL,
                                         related_name='posts_liked',
                                         blank=True, null=True)

    total_likes = models.PositiveIntegerField(blank=True, null=True, db_index=True)

    created_at = models.DateTimeField(auto_now_add=True, db_index=True)

    objects = PostManager()

    # TODO: get_absolute_url()

    def get_absolute_url(self):
        return reverse('user_posts:post_detail', args=[self.slug])

    def __str__(self):
        return self.title

    def save(self, force_insert=False, force_update=False, using=None,
             update_fields=None):
        if not self.slug:
            self.slug = slugify(self.title)
            super(Post, self).save(force_insert, force_update, using, update_fields)

    class Meta:
        verbose_name_plural = 'Posts'
试试下面的方法

class CreatePost(CreateView):
    form_class = CreatePostForm
    template_name = 'dashboard/add-product.html'
    success_url = ('url_name')

    def form_valid(self, form):
        valid_data = super(CreatePost, self).form_valid(form)
        form.instance.user = self.request.user
        return valid_data
试试下面的方法

class CreatePost(CreateView):
    form_class = CreatePostForm
    template_name = 'dashboard/add-product.html'
    success_url = ('url_name')

    def form_valid(self, form):
        valid_data = super(CreatePost, self).form_valid(form)
        form.instance.user = self.request.user
        return valid_data

得到相同的错误。这就是为什么它会这样。我将上传我的模型mby,它将帮助.def获取绝对url(self):返回reverse('user_posts:post_detail',args={self.slug})获得相同的错误。这就是为什么它会这样。我将上传我的模型mby,它将帮助.def获取绝对url(self):返回反向('user_posts:post_detail',args={self.slug})