![](/img/trans.png)
[英]I how to check for authenticated user and show then show a different content in django
[英]How can I show randomly different data for each user in Django?
我在 Django 中有一個標簽系統,下面是 model;
class Data(models.Model):
new = models.ChardField()
is_tagged = models.BooleanField(default=False)
class Tag(models.Model):
data = models.ForeignKey(Data,on_delete=models.CASCADE,related_name="data")
status = models.CharField(verbose_name="New Status",max_length=10,null=True)
標簽狀態包括“肯定”、“否定”和“通過”。
有一個名為“新標簽”的頁面,大約有 100 個用戶會同時進入該頁面。
有10000條數據,用戶進入頁面,點擊“肯定”、“否定”、“通過”即可。
我想為每個用戶顯示不同的數據。
EDIT
New1: id = 1,is_tagged=False
New2: id = 2,is_tagged=False
User 1: Display New1
User 2: Display New1
User 1: Tag: "Positive" and id = 1, is_tagged will be "True"
Because both user open the windows at the same time, after 1 second,
User 2: Tag: "Pass" and id = 1 , is_tagged will be "False"
我想防止這種情況。 它應該是;
User 1: Display New1
User 2: Display New2
所以每個用戶必須顯示不同的新聞數據來標記。
假設用戶將新標簽標記為“正面”。 如果我將使用random()
發送新的,不幸的是,它可能與另一個用戶相同。 並且用戶可以標記為“通過”。 此狀態將使“Data”“is_tagged”為 False。 但其他用戶之前標記為“積極”。
如何防止用戶同時看到相同的數據?
如果你需要得到一個隨機的 object,你可以這樣做:
import random
all_object_ids = Data.objects.all().values_list('id', flat=True) # gets list of all object ids
random_id = random.choice(all_object_ids) # picks a random id from list
random_tag = Data.objects.get(id=random_id)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.