Django中的条件类别

时间:2015-07-10 13:04:24

标签: python django

我正在创建一个医生目录,并希望为每个目录添加专业化和子专业化。问题是牙医的子专业化与其他专业化不同。因此,当我从管理面板添加牙医时,我希望看到一个不同的子专业化列表,与添加任何其他专业化相比。我不确定该如何去做。到目前为止,我有一个专门化和子专业化的单独模型。当我尝试添加专业化时,它会为所有内容打开相同的专业化下拉列表。

models.py

class Specialization(models.Model):
    name = models.CharField(max_length=30)
    info = models.TextField(max_length=1600, blank = True, null = True)

    def __unicode__(self):
        return self.name

    class Meta:
        ordering = ('name',)


class Sub_Specialization(models.Model):
    name = models.CharField(max_length=30)
    info = models.TextField(max_length=1600, blank = True, null = True)

    def __unicode__(self):
        return self.name

    class Meta:
        ordering = ('name',)

class Doctor(models.Model):
    name = models.CharField(max_length=1300)
    specialization = models.ForeignKey(Specialization)
    sub_specialization = models.ForeignKey(Sub_Specialization,null = True, blank = True)
def __unicode__(self):
      return u"%s %s" % (self.name, self.specialization)


    def get_absolute_url(self):
        from django.core.urlresolvers import reverse
        return reverse('m1.views.showDocProfile', args=[str(self.id)])

    class Meta:
        ordering = ('name',)

2 个答案:

答案 0 :(得分:1)

此问题通常称为"依赖选择"

其中一个软件包解决了这个问题 - https://github.com/runekaagaard/django-admin-flexselect

答案 1 :(得分:0)