我正在开发一个应用程序,我有一个用户创建一个包含一些常规内容的文档。我设置了模型,以便用户可以通过下面显示的多对多字段与其他用户共享该文档。我遇到的问题是 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')
答案 0 :(得分:0)
一种解决方案可能是在表单初始化时覆盖查询集:
class CreateDocForm(forms.ModelForm):
...
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['collaborators'].queryset = User.objects.filter([some filters])
...
另一种解决方案是使用第三方模块:django-autocomplete-light