#django #django-models #django-forms
Вопрос:
Я разрабатываю приложение, в котором пользователь создает документ с некоторым общим содержанием. Я настроил модель таким образом, чтобы пользователь мог поделиться этим документом с другими пользователями через множество полей, показанных ниже. Проблема, с которой я сталкиваюсь, заключается в том, что поле ManyToMany показывает всех пользователей на моем сайте как возможных сотрудников, в то время как я хочу показать им только членов их команды. Как бы я это сделал?
Мои модели:
class Document(models.Model):
...
collaborators = models.ManyToManyField(User, related_name="doc_collaborators")
class User(models.Model):
...
team = models.CharField('team', max_length=50)
Мои бланки:
class CreateDocForm(forms.ModelForm):
class Meta:
model = Document
exclude = ('created_at', 'updated_at', 'owner', 'slug')
Комментарии:
1. показать файл forms.py с помощью которого вы показываете.
2. обновлено с помощью forms.py
Ответ №1:
Одним из решений может быть переопределение набора запросов при инициализации формы:
class CreateDocForm(forms.ModelForm):
...
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['collaborators'].queryset = User.objects.filter([some filters])
...
Другим решением является использование сторонних модулей: django-автозаполнение-свет