2017-06-30 14 views
0
class User(models.Model): 
    username = models.CharField(max_length=150) 
    email = models.EmailField(max_length=150) 

class Recipes(models.Model): 
    title = models.CharField(max_length=150) 
    user = models.ForeignKey(User, related_name='user', on_delete=models.CASCADE, null=True) 
    created = models.DateTimeField(auto_now=True, auto_now_add=False) 
    updated = models.DateTimeField(auto_now=False, auto_now_add=True) 

class FavoriteRecipes(models.Model): 
    user = models.ForeignKey(User, on_delete=models.CASCADE, null=True) 
    recipe = models.ForeignKey(Recipes, on_delete=models.CASCADE, null=True) 

class FavoriteChef(models.Model): 
    user = models.ForeignKey(User, related_name='user', on_delete=models.CASCADE) 
    favorite = models.ForeignKey(User, related_name='favorite', on_delete=models.CASCADE) 

私はレシピやユーザーにレーティングシステムを作成しようとしています。私はこれが最善のアプローチであるかどうかわからないけど、彼は私の質問です:Djangoモデルシステムを使用した評価

  1. 私は別のユーザーが気に入ったレシピのammountをカウントする方法、例:

    • ユーザー1気に入ったレシピ1
    • ユーザ2好きレシピ1
    • レシピ1からユーザーを制限する方法2.
  2. によってliekdれますこの缶が存在するようにDjangoは独自のPKエントリを生成するので、このアプローチを使用して投票してもよい回:

    • PK:1レシピ好き1人のユーザ1

    • PK:1レシピ1

    • 好き2ユーザ

と感謝

答えて

1

あなたが投票の数を制限できます。

count= FavoriteRecipes.objects.filter(recipe=Recipe).count() 
if FavoriteRecipes.objects.filter(recipe=Recipes, user=User).exists(): 
    #do not update 
else: 
    #save vote 

その後、あなたが票を数えることができます

関連する問題