title: how django related_name used with the special keyword /
body: <p>I have three Model classes, <strong>Product, ShoppingCart, ShoppingCartItem</strong> </p>
  
  <p>In shoppingCartItem class the product field connect with Product class and used the related_name='+', but in ShoppingCart class in the sub_total() call the "item.product.get_price()".
  item is the related_query_name but the I have an issue with the <strong><em>.get_price() function.</em></strong></p>
  
  <pre><code>from django.utils import timezone
  from django.db import models
  
  class Product(models.Model):
      DISCOUNT_RATE = 0.10
  
      id = models.AutoField(primary_key=True)
      name = models.CharField(max_length=200)
      description = models.TextField()
      price = models.FloatField()
      sale_start = models.DateTimeField(blank=True, null=True, default=None)
      sale_end = models.DateTimeField(blank=True, null=True, default=None)
      photo = models.ImageField(blank=True, null=True, default=None, upload_to='products')
  
      def is_on_sale(self):
          now = timezone.now()
          if self.sale_start:
              if self.sale_end:
                  return self.sale_start &lt;= now &lt;= self.sale_end
              return self.sale_start &lt;= now
          return False
  
      def get_rounded_price(self):
          return round(self.price, 2)
  
      def current_price(self):
          if self.is_on_sale():
              discounted_price = self.price * (1 - self.DISCOUNT_RATE)
              return round(discounted_price, 2)
          return self.get_rounded_price()
  
  
  class ShoppingCart(models.Model):
      TAX_RATE = 0.13
  
      id = models.AutoField(primary_key=True)
      name = models.CharField(max_length=200)
      address = models.CharField(max_length=200)
  
      def subtotal(self):
          amount = 0.0
          for item in self.shopping_cart_items:
              amount += item.quantity * **item.product.get_price()
          return round(amount, 2)**
  
      def taxes(self):
          return round(self.TAX_RATE * self.subtotal(), 2)
  
      def total(self):
          return round(self.subtotal() * self.taxes(), 2)
  
  
  class ShoppingCartItem(models.Model):
      shopping_cart = models.ForeignKey(ShoppingCart, related_name='items', related_query_name='item', on_delete=models.CASCADE)
      product = models.ForeignKey(Product, **related_name='+'**, on_delete=models.CASCADE)
      quantity = models.IntegerField()
  
      def total(self):
          return round(self.quantity * self.product.current_price())
  
  
  
  </code></pre>