Модель прокси Django решила эту проблему.
Это мое решение:
form.fields['students'].queryset = Student.objects.filter(id__in = school.students.all())
Здесь school.students - м2м (пользователь), Student - прокси-модель пользователя.
class Student(User):
class Meta:
proxy = True
def __unicode__(self):
return 'what ever you want to return'
Все вышеперечисленное поможет вам решить, хотите ли вы показать свой ForeignKey пользователя в вашем пользовательском методе.Если вы просто хотите изменить его в представлении администратора, есть простое решение:
def my_unicode(self):
return 'what ever you want to return'
User.__unicode__ = my_unicode
admin.site.unregister(User)
admin.site.register(User)
добавить эти коды в admin.py, это работает.