【发布时间】:2013-11-29 00:19:29
【问题描述】:
全部:
对于静态数据,与 CheckboxSelectMultiple 小部件一起使用的正确 Model 字段类型是什么?我收到了验证错误,感觉我遗漏了一些简单的东西。
该应用程序是一个简单的 Django 1.6 应用程序,其中一个 Campground 对象可以有多个 eligible_days(例如,站点 #123 可能在周一和周二可用,而站点 #456 在周三至周五可用)。
因为它是静态数据,并且我已经准备好 ManyToManyField 具有不必要的数据库开销,所以我尝试使用模型内部定义的 choices 来执行此操作,但是当我尝试保存时,我得到了验证错误 选择一个有效的选项。 [u'5', u'6'] 不是可用的选项之一。 每次。
- Q1:我是否必须覆盖/子类化字段才能支持此功能?
- Q2:我是否需要自定义验证方法来支持这一点?
-
Q3:我是否因为避免
ManyToManyField而对自己造成不必要的困难?
感谢您的帮助! /米
models.py
>class CampgroundQuery(models.Model):
SUN = 0
MON = 1
TUE = 2
WED = 3
THU = 4
FRI = 5
SAT = 6
DAYS_OF_WEEK_CHOICES = (
(SUN, 'Sunday'),
(MON, 'Monday'),
(TUE, 'Tuesday'),
(WED, 'Wednesday'),
(THU, 'Thursday'),
(FRI, 'Friday'),
(SAT, 'Saturday'),
)
# loads choices from defined list
eligible_days = models.CharField(max_length=14,choices=DAYS_OF_WEEK_CHOICES,
blank=False, default='Saturday')
campground_id = models.SmallIntegerField()
stay_length = models.SmallIntegerField()
start_date = models.DateField()
end_date = models.DateField()
admin.py
>from django.contrib import admin
from searcher.models import CampgroundQuery
from forms import CampgroundQueryAdminForm
class CampgroundQueryAdmin(admin.ModelAdmin):
form = CampgroundQueryAdminForm
admin.site.register(CampgroundQuery, CampgroundQueryAdmin)
forms.py
>from django import forms
from django.contrib import admin
from searcher.models import CampgroundQuery
class CampgroundQueryAdminForm(forms.ModelForm):
class Meta:
model = CampgroundQuery
widgets = {
'eligible_days': forms.widgets.CheckboxSelectMultiple
}
【问题讨论】:
标签: django django-models django-forms