Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Modele
- class Offer(models.Model):
- title = models.CharField(max_length=100)
- content = models.TextField(blank=False)
- price = models.IntegerField()
- contact = models.IntegerField()
- photo = models.ImageField(upload_to='offer_images/',blank=True)
- created_at = models.DateTimeField(auto_now_add=True)
- category = models.ForeignKey('Category', null=True, blank=True,on_delete=models.CASCADE)
- slug = models.SlugField(max_length=200, db_index=True,default="None")
- def get_absolute_url(self):
- return reverse('offers:offer_detail',args=[self.title, self.slug])
- class Meta:
- ordering = ('title',)
- index_together = (('id', 'slug'),)
- def __str__(self):
- return self.title
- class Category(models.Model):
- name = models.CharField(max_length=200)
- slug = models.SlugField()
- parent = models.ForeignKey('self',blank=True, null=True ,related_name='children',on_delete=models.CASCADE)
- class Meta:
- unique_together = ('slug', 'parent',)
- verbose_name_plural = "categories"
- def __str__(self):
- full_path = [self.name]
- k = self.parent
- while k is not None:
- full_path.append(k.name)
- k = k.parent
- return ' -> '.join(full_path[::-1])
- Widoki
- class GetOffersByCategory(ListView):
- model = Offer
- template_name = 'offer/offer_list.html'
- context_object_name="offer_list"
- def queryset(self):
- self.category = get_object_or_404(Category, name=self.kwargs['name'])
- return Offer.objects.filter(category=self.category)
- class HomeView(ListView):
- model = Category
- template_name = "accounts/home.html"
- context_object_name="category_list"
- URl
- path('', views.HomeView.as_view() ,name='home'),
- path('offers/<str:category>',views.GetOffersByCategory.as_view(),name='offers'),
- {% for category in object_list %}
- {% url 'offers' Terraristic %}
- {% endfor %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement