我正在制作我的第一个网站,并将其托管在Heroku上。该网站的目的是发布挑战,以获得特定的秘密密钥(类似于非常简单的CTF)。当密钥被提交时,挑战就解决了。
这是我models.py文件中的代码:
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
""" Each post represents one challenge """
title = models.CharField(max_length=40)
text = models.TextField()
secret_key = models.CharField(max_length=30)
solved = models.BooleanField(default=False, name='solved')
file = models.FileField(upload_to='uploads/', null=True, blank=True)
# solved_by = models.ForeignKey(User, on_delete=models.CASCADE)
def check_state(self, answer):
""" Examine whether the challenge was solved """
if self.secret_key == answer:
self.solved = True
self.save()
return True
return False
def __str__(self):
return self.title
每个帖子基本上都是一项挑战。当有人解决了挑战/帖子时,解决的值被设置为True,并且还控制着文本是否对用户可见。目前,当有人解决一个挑战时,它被视为已解决,对于其他所有人也是如此。我希望每个用户都能解决每个挑战,并且对于每个挑战都有自己的已解决变量。我尝试使用models.ForeignKey,但它不起作用。我需要什么样的数据库关系才能使其正常工作?