在我的模型.py文件我有一个名为'Problem'的类,它基本上存储了一个问题,它的答案和一些评分相关的信息。以下是该类的代码:
class Problem(models.Model):
def CreatePath(instance, filename):
return ( '/' + instance.problemLevel + '.' + (instance.primary_key) + '.html')
# Use 'pkey' as problem ID
problemName = models.CharField('Problem Name',max_length=50)
problemText = RichTextField('Problem Statement',max_length=10000)
testCases = models.TextField('Test Cases',max_length=4000)
output = models.TextField('Test case result',max_length=4000)
problemLevel = models.IntegerField('Problem Level')
problemPoints = models.IntegerField('Points')
problemLink = models.FileField(upload_to=CreatePath, blank=True)
def save(self, *args, **kwargs):
self.problemLink = self.problemText
super(Problem, self).save(*args, **kwargs)
def __unicode__(self):
return self.problemName
在用户通过管理页面输入问题后(我在problem文本字段中使用Ckeditor RTE),我希望Django为该特定问题创建一个新的html页面。假设我输入problemLevel=1的问题,假设它是第一个问题,我希望1.1.html存储到problems(media)目录中。因此,我尝试使用一个FileField对象来实现这个目的,并稍微修改了save()模块。但是文件没有被创建。我运行了内置的Django管理shell来检查problemLink的内容,它的内容与problemText相同。有人能告诉我我哪里出错了吗? 我是Django新手,如果有帮助的话!在
为什么要为它创建一个HTML页面?在
通常在django中,您会将数据存储在数据库中,就像您所做的那样,去掉链接。在
那么你就有了一个网址网址.py在
例如
url(r"^(?P<problemLevel>\d+)/(?P<pk>)/$", views.showProblem)
它将在视图.py文件,当用户请求
http://<yourserver>/1/1/
时,它将获取信息并为用户呈现为HTML。在这里重要的一点是,所有这些都发生在用户请求时,而不是存储数据时。在
相关问题 更多 >
编程相关推荐