Как ограничить значения, возвращаемые с помощью отношения ManyToMany, и, таким образом, отобразить в поле <SELECT>
в моей форме, чтобы показывать только те пятна, которые были созданы в настоящее время вошедшим в систему пользователем?Ограничить выбор, указанный в ManyToMany ForeignKey
models.py
class Project(models.Model):
owner = models.ForeignKey(User, editable=False)
...
spots = models.ManyToManyField(to='Spot', blank=True,)
class Spot(models.Model):
owner = models.ForeignKey(User, editable=False)
spot_name = models.CharField(max_length=80, blank=False)
forms.py
from django import forms
from .models import Project, Spot
class ProjectForm(forms.ModelForm):
class Meta:
model = Project
exclude = ('owner',)
class SpotForm(forms.ModelForm):
class Meta:
model = Spot
exclude = ('owner',)
Я использую GenericViews для обновления и создания и в настоящее время увидеть все записи каждый составил в Пятна, когда я обновляю или создания проекта. Я хочу видеть только записи, введенные зарегистрированным пользователем. Для полноты, да, project.owner
и spot.owner
были установлены пользователем, когда они были созданы.
Я пробовал def INIT в forms.py и используя limit_choices_to в поле manytomany в модели. Либо я сделал это как неправильно, либо это неправильный способ сделать это.
спасибо!
Я использую 1.8, кстати, вы используете представления на основе классов, поэтому мой метод в views.py не работает так же, как ваш. Но рад видеть, что вы решили проблему. –