无法创建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})