Python 如何在Django中比较对象?
你好,我是Django的新手,也是编程新手。有人能告诉我如何比较由同一模型创建的对象吗Python 如何在Django中比较对象?,python,django,Python,Django,你好,我是Django的新手,也是编程新手。有人能告诉我如何比较由同一模型创建的对象吗 产品1 商店1 产品1 商店2 产品1 商店3 如果我的应用程序发现多个具有相同参数“product1”的对象,我希望我的应用程序能做些什么,理想情况下,它会创建一个如下对象: 产品1 商店1 商店2 商店3 型号: class ProductInShop (models.Model): product = models.ForeignKey(Product) shop = m
- 产品1
- 商店1
- 产品1
- 商店2
- 产品1
- 商店3
- 产品1
- 商店1
- 商店2
- 商店3
class ProductInShop (models.Model):
product = models.ForeignKey(Product)
shop = models.ForeignKey(Shop)
class Product(models.Model):
... all other fields
shops = models.ManyToManyField(Shop)
视图:
模板:
{% for asd in all_products %}
<li>{{ asd.product.name }}</li>
<li>{{ asd.shop.name }}</li>
</br>
{% endfor %}
{% for product in all_products %}
<li>{{ product.name }}</li>
{% for shop in product.shops.all() %}
<li>{{ shop.name }}</li>
{% endfor %}
</br>
{% endfor %}
{% for product in all_products %}
<li>{{ product.name }}</li>
{% for productinshop in product.productinshop_set.all %}
<li>{{ productinshop.shop.name }}</li>
{% endfor %}
</br>
{% endfor %}
{%用于所有_产品中的asd%}
{{asd.product.name}
{{asd.shop.name}
{%endfor%}
您可以比较对象的md5
:
我认为,你可以像这样改变你的结构: 型号:
class ProductInShop (models.Model):
product = models.ForeignKey(Product)
shop = models.ForeignKey(Shop)
class Product(models.Model):
... all other fields
shops = models.ManyToManyField(Shop)
视图:
模板:
{% for asd in all_products %}
<li>{{ asd.product.name }}</li>
<li>{{ asd.shop.name }}</li>
</br>
{% endfor %}
{% for product in all_products %}
<li>{{ product.name }}</li>
{% for shop in product.shops.all() %}
<li>{{ shop.name }}</li>
{% endfor %}
</br>
{% endfor %}
{% for product in all_products %}
<li>{{ product.name }}</li>
{% for productinshop in product.productinshop_set.all %}
<li>{{ productinshop.shop.name }}</li>
{% endfor %}
</br>
{% endfor %}
模板:
{% for asd in all_products %}
<li>{{ asd.product.name }}</li>
<li>{{ asd.shop.name }}</li>
</br>
{% endfor %}
{% for product in all_products %}
<li>{{ product.name }}</li>
{% for shop in product.shops.all() %}
<li>{{ shop.name }}</li>
{% endfor %}
</br>
{% endfor %}
{% for product in all_products %}
<li>{{ product.name }}</li>
{% for productinshop in product.productinshop_set.all %}
<li>{{ productinshop.shop.name }}</li>
{% endfor %}
</br>
{% endfor %}
然后在模板中:
{% for product in all_products %}
<li>{{ product.name }}</li>
{% for shop in product.get_shops %}
<li>{{ shop.name }}</li>
{% endfor %}
</br>
{% endfor %}
{%用于所有_产品中的产品%}
{{product.name}
{product.get_shops%}
{{shop.name}
{%endfor%}
{%endfor%}
ProductInShop中的字段不止两个。我无法更改结构。如果要比较对象,则不应使用MD5,只需使用object.id即可