如何使用Django为Model对象中的循环分配项目?

时间:2014-07-05 07:42:38

标签: python django

是否可以覆盖模型中的值?我得到'MyModel'对象不支持项目分配。

- model.py

class Slider(models.Model):
   name = models.CharField(max_length=255)
   rows = models.SmallIntegerField(max_length=2)
   cat = models.ForeignKey(Products)
   order = models.SmallIntegerField()
   status = models.BooleanField(default=0)

--- views.py

rows = Slider.objects.all().order_by('order')

for item in rows:
    product = Products.objects.filter(cat=item.cat)[:10]
    item['product'] = product
    print item

异常值:'Slider'对象不支持项目分配

1 个答案:

答案 0 :(得分:0)

如果您想在特定product的数据库中保留Slider的值,请将ForeignKey字段添加到Slider

class Slider(models.Model):
    ...
    product = models.ForeignKey(Products)

如果您想暂时存储,只需将常规属性添加到Slider即可保留。

class Slider(models.Model):
    ...
    product = None

在任何一种情况下,您都可以这样设置:

rows = Slider.objects.all().order_by('order')
for item in rows:
    item.product = ...

如果您愿意,可以完全省略属性声明,但这意味着如果您去检查item.product,而没有先设置它,您将获得AttributeError