如果已在第一个

时间:2015-08-10 10:31:41

标签: django django-models

我有模型Category

class Category(models.Model):
    name = models.CharField("Category Name", max_length=120, default='', null=True, blank=True)

和模型Organization

class Organization(models.Model):
    name = models.CharField("Organization name", max_length=120, default='')
    m_primary_category = models.ForeignKey('Category', null=True, blank=True, default='', related_name="+", verbose_name='Primary Category')
    m_secondary_category = models.ForeignKey('Category', null=True, blank=True, default='', related_name="+", verbose_name='Secondary Category')

用户必须首先添加类别,然后在组织模型中选择主要&次要领域。

问题是:如果已在主要选择中进行选择,如何隐藏/删除辅助类别?

实施例: - 用户在类别模型中添加:Cat1,Cat2和Cat3。 - 用户添加:组织名称:组织,选择主要类别:Cat1。那么"中学类别"中的可用类别必须是:Cat2,Cat3。

1 个答案:

答案 0 :(得分:0)

如果您希望在不提交表单的情况下显示和隐藏元素,您将需要一些javascript,使用jquery这应该相当容易

$('#id_m_primary_category').change(function(){
    // etc
});

当然,人们无法信任用户的输入,因此您仍需要验证表格

def clean(self):
    if self.cleaned_data.get('m_primary_category') == self.cleaned_data.get('m_secondary_category'):
        raise forms.ValidationError('No')