CreateNewsView缺少查询集
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})
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)