【发布时间】:2012-02-16 12:12:39
【问题描述】:
我的 models.py 中有以下代码(删除了不相关的字段):
class Choices(models.Model):
name = models.CharField(max_length=300)
choice_type = models.CharField(max_length=200)
def __unicode__(self):
return self.name
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
planguages = models.ManyToManyField(Choices)
还有我的 utils.py(原来来自 django-profiles,就是解析表单):
def get_profile_form():
profile_mod = get_profile_model()
class _ProfileForm(forms.ModelForm):
planguages = forms.ModelMultipleChoiceField(queryset=Choices.objects.all(), required=False, widget=forms.CheckboxSelectMultiple)
class Meta:
model = profile_mod
exclude = ('user',) # User will be filled in by the view.
return _ProfileForm
现在,我想做的是有一个表Choices,它有name 和choice_type 列,我已经有了。问题是我真的不知道如何将选项与类别联系起来,并让用户在创建个人资料时根据choice_type 中的选择选择编程语言或框架。
我认为它会涉及一些 JS,但这不像 django 代码那么大。
【问题讨论】:
-
你能稍微扩展一下吗?您想限制用户根据计划从某些类别中进行选择吗?
-
@Thomas 不,恰恰相反。我希望用户能够选择他们有经验的编程语言和框架。
choice_type将有以下选项:编程语言、标记/脚本语言、框架。所以,我想将某些选择(即name)限制为特定类别(即choice_type)。 -
您将他们的经验数据存储在哪里?
-
@Thomas 在数据库中。在 myapp_choices 表中。
-
你并不清楚你想要什么。您是希望根据与计划的亲和性来动态过滤用户可用的选项,还是仅显示按choice_type 分组的列表?
标签: javascript python django django-models django-forms