Advertisement
kamski

Untitled

Apr 2nd, 2021
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1.  
  2. class CreateBlog(generic.CreateView):
  3. template_name = 'app_blog/create_blog.html'
  4. model = Blog
  5. fields = ('title', 'content',)
  6. success_url = reverse_lazy('blog')
  7.  
  8. def get_context_data(self, **kwargs):
  9. context = super().get_context_data(**kwargs)
  10. form_file = BlogForm()
  11. form_file.fields['csv_file'].widget = forms.HiddenInput()
  12. context['form_file'] = form_file
  13. return context
  14.  
  15. def post(self, request, *args, **kwargs):
  16. super().post(request, *args, **kwargs)
  17. self.object.user = request.user
  18. self.object.save()
  19. files = request.FILES.getlist('image')
  20. if files:
  21. for f in files:
  22. image_blog_obj = FileHolder.objects.create(blog=self.object, image=f)
  23. image_blog_obj.save()
  24. return redirect(self.success_url)
  25.  
  26.  
  27.  
  28. class Blog(models.Model):
  29. user = models.ForeignKey(
  30. User,
  31. related_name='user_blog',
  32. verbose_name='пользователь',
  33. on_delete=models.SET_NULL, null=True,
  34. )
  35. title = models.CharField('заголовок', max_length=50, blank=True, null=True)
  36. content = models.TextField('контент', max_length=500, blank=True)
  37. created_at = models.DateTimeField(auto_now=True, )
  38. published = models.DateTimeField('дата публикции', null=True)
  39.  
  40. class Meta:
  41. verbose_name = 'Блог'
  42. verbose_name_plural = 'Блоги'
  43.  
  44.  
  45.  
  46.  
  47.  
  48. class CreateBlogTest(BaseTest):
  49. def test_get_and_template(self):
  50. response = self.client.get(reverse('create_blog'))
  51. self.assertEqual(response.status_code, 200)
  52. self.assertTemplateUsed(response, 'app_blog/create_blog.html')
  53.  
  54. def test_create_blog(self):
  55. user = User.objects.create_user(self.username)
  56. self.session(user)
  57. self.data_for_blog['user'] = self.username
  58. self.client.post(reverse('create_blog'), self.data_for_blog)
  59. self.assertTrue(models.Blog.objects.get(title='test_title'))
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement