因此,我一直在建立我的第一个网站并将其托管在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
每个帖子基本上都是一个挑战。当有人解决质询/帖子并控制文本是否对用户可见时,solved值将设置为True。现在,当某人解决了挑战时,其他所有人都将得到解决。我希望每个用户都能解决所有挑战,并为每个挑战拥有自己的已解决变量。我尝试使用模型。外键,但是不起作用。我需要什么数据库关系才能完成这项工作?
答案 0 :(得分:0)
听起来,您需要在Post和User模型之间建立一个多对多UserPost表。
https://docs.djangoproject.com/en/2.1/topics/db/examples/many_to_many/
这样,您可以在每个用户和每个挑战之间建立独特的关系。
仅供参考。尽管我了解您要遵循的描述性方法,但是您可以使用#
进行单行注释。