簡體   English   中英

如何為 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM