5

これらの 2 つのモデルと modeladmin があります。利用可能なホストユーザーのリストに新しいホストを追加すると、別のホストに割り当てられていないホストユーザーのみが表示されます。問題は、既に作成されたホストを編集すると、実際のホストユーザー ID もフィルター処理されるため、現在割り当てられているホストユーザー ID を除外することです。hostuser フィールドから現在の ID を除外するように指定するにはどうすればよいですか?

私が必要とする声明は*の間に書かれています

前もって感謝します

モデル.py

class HostUser(models.Model):
    name = models.CharField(max_length=200)
    {..More Data..}

class Host(models.Model):
    {..More Data..}
    hostuser = models.ForeignKey(HostUser, blank=True, null=True)

Admin.py

class HostAdmin(admin.ModelAdmin):
    {..More Data..}
    def render_change_form(self, request, context, *args, **kwargs):
        list_names = Host.objects.values_list('hostuser__id', flat=True).exclude(hostuser__id=None).exclude(hostuser__id=**ACTUAL HOSTUSER_ID**)
        list_names = [int(ids) for ids in list_names]
        context['adminform'].form.fields['hostuser'].queryset = HostUser.objects.exclude(id__in=list_names)
        return super(HostAdmin, self).render_change_form(request, context, args, kwargs)
4

1 に答える 1