vin_paste

Untitled

Jan 16th, 2021
478
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.89 KB | None | 0 0
  1. urls.py:
  2. urlpatterns = [
  3.     path('sports/', SportsList.as_view(), name='sports'),
  4.     path('sports_details/<slug:slug>', SportsDetails.as_view(), name='sports_details'),
  5.     path('sports/?p<str:name>', SportsCategory.as_view(), name="categories"),
  6. ]
  7.  
  8. views.py:
  9. class SportsDetails(DetailView):
  10.     model = Sports
  11.     template_name = 'frontend/sport_detail.html'
  12.     context_object_name = 's_details'
  13.  
  14.     def get_context_data(self, **kwargs):
  15.         context = super().get_context_data(**kwargs)
  16.         context['SEO'] = SeoSettigs.objects.all()
  17.         context['s_cat'] = models_data.sports_category_counts()
  18.         return context
  19.  
  20.  
  21. class SportsCategory(ListView):
  22.     model = Sports
  23.     template_name = 'frontend/sports_category.html'
  24.     paginate_by = 5
  25.     context_object_name = 'sport'
  26.  
  27.     def get_queryset(self):
  28.         return Sports.objects.filter(category__category=self.kwargs['name'])
  29.  
  30.     def get_context_data(self, **kwargs):
  31.         context = super().get_context_data(**kwargs)
  32.         # context['pop_blogs'] = Sports.objects.all().order_by('-pk')[:4]
  33.         context['SEO'] = SeoSettigs.objects.all()
  34.         context['category_name'] = self.kwargs['name']
  35.         context['s_cat'] = models_data.sports_category_counts()
  36.         return context
  37.    
  38. models.py:
  39.     class SportsCategory(models.Model):
  40.     category = models.CharField(max_length=50, unique=True)
  41.  
  42.     def __str__(self):
  43.         return self.category
  44.  
  45.     class Meta:
  46.         verbose_name_plural = "Category"
  47.  
  48.  
  49. class Sports(models.Model):
  50.  
  51.     title = models.CharField(max_length=200, unique=True)
  52.     featured_image = models.ImageField(null=True, blank=True)
  53.     content = RichTextUploadingField(blank=True, null=True, extra_plugins=
  54.     ['youtube', ], external_plugin_resources=
  55.                           [('youtube', '/static/ckeditor/ckeditor/plugins/youtube/', 'plugin.js')], )
  56.     category = models.ForeignKey(SportsCategory, default=" ", null=True, blank=True,
  57.                                  verbose_name="Category", on_delete=models.SET_NULL)
  58.     # test_date = models.DateField(auto_now_add=False, auto_now=False, blank=True, null=True)
  59.     from_date = models.DateField(auto_now_add=False, auto_now=False, blank=True, null=True)
  60.     to_date = models.DateField(auto_now_add=False, auto_now=False, blank=True, null=True)
  61.     slug = models.SlugField(max_length=500, unique=True, null=True, blank=True, help_text='This field is to simplify url in human '
  62.                                                                           'readable form, no action needed from admin side')
  63.  
  64.     def __str__(self):
  65.         return self.title
  66.  
  67.     def save(self, *args, **kwargs):
  68.         self.slug = slugify(self.title)
  69.         super(Sports, self).save(*args, **kwargs)
  70.  
  71.  
  72.     def get_absolute_url(self):
  73.         return reverse('sports_details',  kwargs={'slug': self.slug})
  74.  
  75.     class Meta:
  76.         verbose_name_plural = "Sports"
  77.         ordering = ["-from_date"]
  78.        
  79. html code:
  80.    
  81.     <aside class="single_sidebar_widget post_category_widget">
  82.                             <h4 class="widget_title">Catgories</h4>
  83.                             <ul class="list cat-list">
  84.                                 {% for category in s_cat %}
  85.                                     {% if category.1 != 0 %}
  86.                                         <li>
  87.                                             <a href="{% url 'categories' category.0 %}" class="d-flex justify-content-between">
  88.                                                 <p>{{ category.0 }}</p>
  89.                                                 <p>{{ category.1|category_count }}</p>
  90.                                             </a>
  91.                                         </li>
  92.                                     {% endif %}
  93.                                 {% endfor %}
  94.                             </ul>
  95.                             <div class="br"></div>
  96.      </aside>
Advertisement
Add Comment
Please, Sign In to add comment