在 /news/create/ CreateNewsView 配置不正确缺少 QuerySet



CreateNewsView 缺少 QuerySet

class CreateNewsView(LoginRequiredMixin,CreateView,):
login_url='/accounts/login'
news_form_class=NewsCreateForm
template_name='news/create_news.html'
success_url=reverse_lazy('home')

def form_valid(self,form):
tag_list = []
news = form.save(commit=False)
title= form.cleaned_data['title']
tags= form.cleaned_data['tags']
tag_list = [Tag.objects.get_or_create(name=tag)[0] for tag in tags.split()]
# news_tag=form.cleaned_data['news_tag']
news.author = self.request.user
news.slug = slugify(title)
for tag in tag_list:
news.tags.add(tag)
news.save()
return super(CreateNewsView,self).form_valid(form)

def form_invalid(self,form):
print (form.errors)
return super(CreateNewsView,self).form_invalid(form)  

我的模型:它的新闻网站,其中包含要创建的标签,我在添加标签时遇到了错误。我没有使用TaggableManager((作为标签,而是创建了自己的模型

class Tag(models.Model):
name = models.CharField(max_length=30)

class News(models.Model):
CATEGORY=(("0","Politics"),("1","Sports"),("2","Health"),("3","Business"),("4","International"),("5","Finance"))
title=models.CharField(max_length=250)
story= models.TextField()
count= models.IntegerField(default=0)
tags = models.ManyToManyField(Tag)
video_url = models.URLField(max_length=270, null=True)  #makemigrations garna baki xa
category= models.CharField(choices=CATEGORY, max_length=2)
slug=models.SlugField(max_length=270,blank=True,null=True)
created_at=models.DateTimeField(auto_now_add=True)
updated_at=models.DateTimeField(auto_now=True)
cover_image=models.ImageField(upload_to="uploads")
author= models.ForeignKey(User, on_delete=models.SET_NULL,null=True)
video_image = models.ImageField(null=True)
def get_absolute_url(self):
return reverse("detail_news",kwargs={"category":self.get_category_display(), "pk":self.pk, "slug":self.slug})

添加模型 = 新闻并在 CreateView 中使用form_class。

class CreateNewsView(LoginRequiredMixin,CreateView,):
model = News
form_class=NewsCreateForm
template_name='news/create_news.html'
success_url=reverse_lazy('home')

def form_valid(self,form):
tag_list = []
news = form.save(commit=False)
title= form.cleaned_data['title']
tags= form.cleaned_data['tags']
tag_list = [Tag.objects.get_or_create(name=tag)[0] for tag in tags.split()]
# news_tag=form.cleaned_data['news_tag']
news.author = self.request.user
news.slug = slugify(title)
for tag in tag_list:
news.tags.add(tag)
news.save()
return super(CreateNewsView,self).form_valid(form)

def form_invalid(self,form):
print (form.errors)
return super(CreateNewsView,self).form_invalid(form)  

最新更新