首页 > 解决方案 > 无法从 django 中的选定类别中获取项目

问题描述

我想获取相关子类别的项目,但我无法从该子类别中获取项目,它向我显示错误

AttributeError:“子类别”对象没有属性“项目”

所以这是我的代码

我的模型

class Subcategories(models.Model):
    categories = models.ForeignKey(Categories, on_delete=models.CASCADE, related_name='our_categories')
    name = models.CharField(max_length=200, blank=False)
    joined_date = models.DateTimeField(default=timezone.now,editable=False)
    update_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.name


class Item(models.Model):

    categories = models.ForeignKey(Categories, on_delete=models.CASCADE,)
    subcategories = models.ForeignKey(Subcategories, on_delete=models.CASCADE, related_name='products')
    can_buy = models.ForeignKey(For, on_delete=models.CASCADE,)
    name = models.CharField(max_length=200, blank=False)
    contain_size = models.CharField(max_length=10, blank=True)
    first = models.ImageField(upload_to='items', blank=False)
    second = models.ImageField(upload_to='items', blank=True)
    third = models.ImageField(upload_to='items', blank=True)
    fourth = models.ImageField(upload_to='items', blank=True)
    fifth = models.ImageField(upload_to='items', blank=True)
    item_vedio = models.FileField(upload_to='item_vedio', blank=True)
    offered_price = models.FloatField(blank=False,)
    actual_price = models.FloatField(blank=False)
    about = models.TextField(blank=False, default="about" )
    offer = models.CharField(max_length=4, blank=True)
    
    def __str__(self):
        return self.name

我的网址.py

urlpatterns = [
    path('<int:subcategory_id>/products/',Product.as_view(),name='product' ),
]

我的意见.py

class Product(View):
    def get(self, request,):
        category_list = Categories.objects.all()
        return render (request, 'products.html', {'category_list': category_list })

    def get(self, request, subcategory_id):
        subcategory = get_object_or_404(Subcategories, pk=subcategory_id)
        products = subcategory.item.all()
        return render (request, 'products.html',{"subcategory_list" : products })

知道是什么导致了问题,感谢您抽出宝贵时间

标签: djangodjango-modelsdjango-rest-frameworkdjango-viewsdjango-templates

解决方案


相关名称是项目模型products中的subcategories外键。

subcategory.products.all()

推荐阅读