我正在创建一个医生目录,并希望为每个目录添加专业化和子专业化。问题是牙医的子专业化与其他专业化不同。因此,当我从管理面板添加牙医时,我希望看到一个不同的子专业化列表,与添加任何其他专业化相比。我不确定该如何去做。到目前为止,我有一个专门化和子专业化的单独模型。当我尝试添加专业化时,它会为所有内容打开相同的专业化下拉列表。
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',)
答案 0 :(得分:1)
此问题通常称为"依赖选择"
其中一个软件包解决了这个问题 - https://github.com/runekaagaard/django-admin-flexselect
答案 1 :(得分:0)
删除Sub_Specialization
这是多余的
使用django-mptt
https://django-mptt.github.io/django-mptt/models.html#setting-up-a-django-model-for-mptt
和django-mptt-admin
https://github.com/mbraak/django-mptt-admin