博客类别slugify在django中不起作用

a0zr77ik  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(421)

当我点击帖子类别时,我发现一个错误,它显示字段“id”应该是一个数字,但得到了“coding”。
每个帖子都添加到下面的类别下,这是我的代码:
型号:

class Categories(models.Model):
    name = models.CharField(max_length=200)

    class Meta:
        verbose_name_plural = 'Categories'

    def __str__(self):

        return self.name

class Item(models.Model):
    title = models.CharField(max_length=100)
    description= RichTextField(blank=True, null=True)
    main_image= models.ImageField(null=True, blank=True,upload_to='images/')
    date = models.DateTimeField(auto_now_add=True)
    item_category = models.ForeignKey(Categories, default='Coding', on_delete=SET_DEFAULT)
    slug = models.SlugField(null=False, unique=True) # new

视图:

def CategoryView(request, cats):
    category_posts = Item.objects.filter(item_category=cats.replace('-',''))
    return render(request, 'waqart/categories.html', {'cats':cats.title(), 'category_posts':category_posts })

网址:

urlpatterns = [
    path('', ItemListView.as_view(), name='waqart-home'),
    path('add_item/', ItemCreateView.as_view(), name='create_item'),
    path('item/<int:pk>/', ItemDetailView.as_view(), name='item_detail'),
    path('item/edit/<int:pk>/', ItemUpdateView.as_view(), name='item_update'),
    path('category/<str:cats>/', CategoryView, name='category'),

我是django的新手,如果有人能帮我解决这个问题,我将不胜感激

ql3eal8s

ql3eal8s1#

您需要根据服务器的名称进行筛选 item_category ,因此:

def CategoryView(request, cats):
    category_posts = Item.objects.filter(
        item_category__name=cats.replace('-','')
    )
    return render(request, 'waqart/categories.html', {'cats':cats.title(), 'category_posts':category_posts })

相关问题