選択フィールドの値をフィルタリングする際に問題が発生しています。
私のアプリケーションのモデルは次のとおりです。
from django.db import models
class Role(models.Model):
    name = models.CharField(max_length=20, blank=False)
    def __unicode__(self):
        return self.name
class Rank(models.Model):
    name = models.CharField(max_length=20, blank=False)
    role = models.ForeignKey(Role, blank=False)
    def __unicode__(self):
        return self.name
class Member(models.Model):
    name = models.CharField(max_length=100, blank=False)
    rank = models.ForeignKey(Rank, verbose_name = 'Member Rank')
    mainrole = models.ForeignKey(Role, related_name = 'main_role', blank=False)
    secondaryrole = models.ForeignKey(Role, related_name = 'secondary_role', blank=False)
    picture = models.ImageField(
        null=True,
        blank=False,
        upload_to='member/pictures/',
        )
    def __unicode__(self):
        return self.name
明確にするために。メンバーは 1 つRank、そこからRank最大 2 つの異なるRoles. ただし、Ranks「n」種類のRoles.     
私が抱えている2つの問題:
- admin では、の名前は、そこに添付されて - Rankいる回数だけ選択フィールドに表示されます。- Roles重複する名前を取り除き、1 つのレコードだけを残す方法はありますか? これは、私がクラスをモデル化した方法に関係している可能性があります.Djangoは初めてです。
- を選択した場合、ユーザーが保存 (ajax 風) を押す前に、 - Rank彼の 2 つの選択フィールドをそので使用できる- Rolesようにフィルター処理する必要があります。これを行う方法はありますか?どのように?- Roles- Rank
お時間をいただきありがとうございます。
私のモデル管理者からのコードで編集:
class MemberInlineFormset(BaseInlineFormSet):
    def add_fields(self, form, index):
        super(MemberInlineFormset, self).add_fields(form, index)
        roles = Role.objects.none()
        if form.instance:
            try:        
                rank = form.instance.rank
            except Rank.DoesNotExist:
                pass   
            else:  
                roles= Role.objects.filter(role__within=Rank.role)
        form.fields['mainrole'].queryset = roles
        form.fields['secondaryrole'].queryset = roles
class MemberInline(admin.TabularInline):
    model = Member
    formset = MemberInlineFormset