我正在编写一个 django 应用程序来管理我页面上的静态内容,以便最终用户可以在整个过程中更新内容,而无需更改代码服务器端。这部分意味着跟踪哪些部分具有自定义定义。因此,这些部分是我的应用程序模型之一。问题是我想限制有关可以自定义哪些部分的选择。
下面是一个部分的样子:
from django.db import models
# Create your models here.
CHOICES = (
("Media_Music_Description","Media Page - Music Description"),
("Media_Photos_Description","Media Page - Photos Description"),
("Media_Videos_Description","Media Page - Videos Description"),
("Home_Content", "Home Page - Content"),
("About_Content", "About Page - Content")
)
class StaticItem(models.Model):
location = models.CharField(choices=CHOICES, unique=True, max_length=255)
def __unicode__(self):
return self.category
class ContentBlock(models.Model):
rank = models.SmallIntegerField()
parent = models.ForeignKey('StaticItem')
content = models.TextField(max_length=1024)
def __unicode__(self):
return "%s - %d" % (self.parent.location, self.rank)
最后,我会将CHOICES
定义移动到我的设置文件中。但是,目前的问题是,即使StaticItem
模型具有由这些选项确定的唯一字段,所有选项都会在创建新的StaticItem
. 虽然它们显示为选项,但 django 会阻止用户创建StaticItem
其位置已被其他人使用的位置。那么我的问题是如何只显示CHOICES
尚未使用的选项StaticItem
。基本上,两者之间必须存在一对一的关系,但我遇到了问题,因为我不想让 CHOICES 成为模型。