我希望以前做过 - 基本上,希望我能正确解释这一点,我喜欢的是一个有一些选择的模型(如下所示)。
我想绕过这些选择'在为模型的选择元组添加第三个或第四个值时,必须是包含(实际值,人类可读名称)元组错误的迭代。
这些选择不仅直接影响您选择的字段,还影响另外几个字段。我已经看过slug字段自动填充的内容,例如博客帖子标题,但是有没有方法可以将多个字段绑定到某个选项?
class Location(models.Model):
SERVICE_CHOICES = (
('bus_station', 'Bus Station', '#cdcdcd'),
('cafe', 'Café', '#cdcdcd'),
('cinema', 'Cinema', '#cdcdcd'),
('gardens', 'Public Gardens', '#cdcdcd'),
('library', 'Library'),
('public_services', 'Public Services'),
('railway_station', 'Railway Station'),
('restaurant', 'Restaurant'),
('school', 'School'),
('shop', 'Shop'),
('supermarket', 'Supermarket'),
('tourist_attractions', 'Tourist Attractions'),
('transit_station', 'Transit Station'),
('walks', 'Walks'),
('woodland', 'Woodland'),
)
locale_descriptor = models.CharField("Locale Descriptor", max_length=50, default='')
latitude = models.DecimalField("Latitude", max_digits=10, decimal_places=7)
longitude = models.DecimalField("Longitude", max_digits=10, decimal_places=7)
title = models.CharField("Title", max_length=60, default='')
description = models.TextField("Description")
service_type = models.CharField("Service Type", max_length=80,choices=SERVICE_CHOICES, default='public_service')
有人知道如何自动填充依赖于这些选择的字段吗?
答案 0 :(得分:0)
我没有清楚地了解你正在尝试做什么,但听起来你需要的是一个ForeignKey关系,而不是试图增加选择元组。像这样:
class ServiceType(models.Model):
def __unicode__(self):
return self.service_name
service_name = modes.CharField(max_length=80)
color = modes.CharField(max_length=7)
class Location(models.Model):
locale_descriptor = models.CharField("Locale Descriptor", max_length=50, default='')
latitude = models.DecimalField("Latitude", max_digits=10, decimal_places=7)
longitude = models.DecimalField("Longitude", max_digits=10, decimal_places=7)
title = models.CharField("Title", max_length=60, default='')
description = models.TextField("Description")
service_type = models.ForeignKey(ServiceType)
不确定如何影响其他字段,但可以通过覆盖save()
方法或实施clean()
方法来完成。一个例子:" Django. Override save for model"。