Untitled
unknown
python
3 years ago
1.4 kB
1
Indexable
class ShoppingCart(models.Model): user = models.OneToOneField( User, verbose_name='User', on_delete=models.CASCADE, related_name='shopping_cart', ) recipes = models.ManyToManyField( Recipe, verbose_name='Ingredients', through='ShoppingCartRecipe', related_name='shopping_cart', ) class Meta: verbose_name = 'Список покупок' verbose_name_plural = 'Списки покупок' constraints = [ models.UniqueConstraint( fields=['user'], name='only one shopping cart for user', ), ] def get_recipes(self): return "\n".join([i.name for i in self.recipes.all()]) def __str__(self): return f'{self.user}\' shopping cart' class ShoppingCartRecipe(models.Model): shopping_cart = models.ForeignKey( ShoppingCart, on_delete=models.CASCADE, related_name='shopping_cart_recipe', ) recipe = models.ForeignKey( Recipe, on_delete=models.CASCADE, related_name='shopping_cart_recipe', ) class Meta: verbose_name = 'Рецепт в списке покупок' verbose_name_plural = 'Рецепты в списке покупок' def __str__(self): return f'{self.recipe} in {self.shopping_cart}'
Editor is loading...