【发布时间】:2021-10-02 09:03:13
【问题描述】:
我想获取相关子类别的项目,但我无法从该子类别中获取项目,它向我显示错误
AttributeError: 'Subcategories' 对象没有属性 'item'
这是我的代码
我的模型
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
我的 urls.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 })
知道是什么导致了问题,感谢您抽出宝贵时间
【问题讨论】:
-
我认为您必须获取该项目,因为该项目具有与 Item.objects.filter(subcategories=subcategory_id) 等子类别的引用
-
当您收到错误 AttributeError: 'Subcategories' object has no attribute 'item' model Subcategories has column or field named item but item model has Subcategories
-
与
Subcategory相关的Item模型名称是products,而不是item。所以使用:subcategory.products.all()
标签: django django-models django-rest-framework django-views django-templates