Dav*_*idL 2 django choice django-models multiple-choice
我一直在搜索和浏览文档,但我想在这里询问并确认最佳解决方案.
试图定义模型选择.
简单示例:在我的models.py中,我有
class Property(models.Model):
name = models.CharField()
class Feature(models.Model):
YES_CHOICES = ( # example of 1, there can be only one selection
('YES', 'Yes'),
('NO', 'No'),
('NOT_SURE', 'Not Sure')
)
PARKING_CHOICES = ( # example of 2, there can be multiple selections
('GARAGE', 'Garage'),
('STREET', 'Street'),
('PRIVATE_LOT', 'Private Lot'),
('VALET', 'Valet'),
)
nearby_school = models.CharField(max_length=8, choices=YES_CHOICES)
parking_options = models. MultipleChoiceField(choices=PARKING_CHOICES)
class PropertyFeature(models.Model)
property = models.ForeignKey(Property)
feature = models.ForeignKey(Feature)
...
Run Code Online (Sandbox Code Playgroud)
那些最好的方法吗?
只想使用Django提供的最有效和最简单的方法.
18个月左右之后,现在有更好的方式来处理choicesDjango; ŁukaszLanga'sdj.choices.它的一个使用示例,来自介绍该项目的博客文章:
from dj.choices import Choices, Choice
class Gender(Choices):
male = Choice("male")
female = Choice("female")
not_specified = Choice("not specified")
class User(models.Model):
gender = models.IntegerField(choices=Gender(),
default=Gender.not_specified.id)
def greet(self):
gender = Gender.from_id(self.gender)
if gender == Gender.male:
return 'Hi, boy.'
elif gender == Gender.female:
return 'Hello, girl.'
else:
return 'Hey there, user!'
Run Code Online (Sandbox Code Playgroud)
但是,这仍然不适用于多个选择.
| 归档时间: |
|
| 查看次数: |
11629 次 |
| 最近记录: |