Python 在django中提供两个选项,而不创建另一个类和foreignkey
假设我希望每个帖子都有分类,但我知道只有两个分类。我不想创建另一个名为class category的模型并将其foreignkey。有不同的方法吗?每个帖子都有类别1或类别2。我想将此选项放在post model字段中。django有Python 在django中提供两个选项,而不创建另一个类和foreignkey,python,django,Python,Django,假设我希望每个帖子都有分类,但我知道只有两个分类。我不想创建另一个名为class category的模型并将其foreignkey。有不同的方法吗?每个帖子都有类别1或类别2。我想将此选项放在post model字段中。django有字段。选项,您可以在现有模型中使用它。 此示例取自django文档 这里,ex“FR”的第一个值是一个将被设置为变量值的值,第二个值“Freshman”是一个您将看到的可读值,所以如果您选择“Freshman”,那么变量将包含值“FR”,每个元组表示一个选择,在您的
字段。选项
,您可以在现有模型中使用它。
此示例取自django文档
这里,ex“FR”的第一个值是一个将被设置为变量值的值,第二个值“Freshman”是一个您将看到的可读值,所以如果您选择“Freshman”,那么变量将包含值“FR”,每个元组表示一个选择,在您的情况下,您将只有两个元组
下面是一个使用field.choices的示例
从django.db导入模型
class Student(models.Model):
FRESHMAN = 'FR'
SOPHOMORE = 'SO'
JUNIOR = 'JR'
SENIOR = 'SR'
YEAR_IN_SCHOOL_CHOICES = [
(FRESHMAN, 'Freshman'),
(SOPHOMORE, 'Sophomore'),
(JUNIOR, 'Junior'),
(SENIOR, 'Senior'),
]
year_in_school = models.CharField(
max_length=2,
choices=YEAR_IN_SCHOOL_CHOICES,
default=FRESHMAN,
)
def is_upperclass(self):
return self.year_in_school in (self.JUNIOR, self.SENIOR)
检查django field.choices类似于
PositiveSmallIntegerField
的选项集可能会起作用。
class Student(models.Model):
FRESHMAN = 'FR'
SOPHOMORE = 'SO'
JUNIOR = 'JR'
SENIOR = 'SR'
YEAR_IN_SCHOOL_CHOICES = [
(FRESHMAN, 'Freshman'),
(SOPHOMORE, 'Sophomore'),
(JUNIOR, 'Junior'),
(SENIOR, 'Senior'),
]
year_in_school = models.CharField(
max_length=2,
choices=YEAR_IN_SCHOOL_CHOICES,
default=FRESHMAN,
)
def is_upperclass(self):
return self.year_in_school in (self.JUNIOR, self.SENIOR)