Django многие ко многим отфильтровывают себя, но другое поле
У меня есть модель UserProfile следующего вида:
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
user_ips = models.ManyToManyField(IpAddress, related_name="ip_user_ips", blank=True)
и модель IpAddress следующим образом:
class IpAddress(models.Model):
ip = models.CharField(max_length=69)
Admin.py:
class UserProfileAdmin(admin.ModelAdmin):
form = UserProfileForm
fieldsets = (
(None, {
'fields': ('user', 'user_ips', 'shared_users',),
}),
)
list_display = ['user', ]
filter_horizontal = ['user_ips',]
Forms.py
class UserProfileForm(forms.ModelForm):
class Meta:
fields = '__all__'
model = UserProfile
shared_users = forms.MultipleChoiceField()
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['shared_users'].queryset = # ???? Display Shared Users By The Same IP of all IPs this user have accessed with
На данный момент "user_ips" отображает все ip адреса определенного пользователя в Admin, я хочу отфильтровать и отобразить всех пользователей с одинаковым ip адресом из всех ip адресов этого пользователя в Admin, Желательно без необходимости создавать дополнительное поле или модель в базе данных.