我有模型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。
答案 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')