Как сортировать в Django созданные пользователями группы слов при выборе их из формы?
Я создал модель "Слова для изучения" и различных групп, создаваемых пользователями, файл models.py
class ForeignWord(models.Model):
from_word = models.CharField(max_length=256, verbose_name='Исходное Слово')
to_word = models.CharField(max_length=256, verbose_name='Перевод')
word_group = models.ForeignKey('WordGroup', on_delete=models.PROTECT, blank=True, null=True, verbose_name='Группа Слов')
hashtag = models.ForeignKey('Hashtag', on_delete=models.PROTECT, blank=True, null=True, verbose_name='Хэштег')
is_learned = models.BooleanField(default=False, verbose_name='Слово Выучено')
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='Пользователь')
def __str__(self):
return f"{self.from_word} :: {self.to_word}"
class Meta:
verbose_name = 'Слово для изучения'
verbose_name_plural = 'Слова для изучения'
class WordGroup(models.Model):
group = models.CharField(max_length=64, verbose_name='Группа Слов')
user = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.group
class Meta:
verbose_name = 'Группа Слов'
verbose_name_plural = 'Группы Слов'
Затем на основе модели ForeignWord создал форму Django, файл forms.py:
from django.forms import ModelForm
from . models import ForeignWord
class ForeignWordForm(ModelForm):
class Meta:
model = ForeignWord
fields = ['from_word', 'to_word', 'hashtag', 'word_group']
И после добавил функцию во views.py
def add_word(request):
if request.method == 'GET':
return render(request, 'bouncer/add_word.html', {'form': ForeignWordForm()})
else:
try:
form = ForeignWordForm(request.POST)
new_word = form.save(commit=False)
new_word.user = request.user
new_word.save()
return redirect('bouncer:homepage')
except ValueError:
return render(request, 'bouncer/add_word.html', {'form': ForeignWordForm(), 'error': 'Недопустимое Значение'})
Проблема в том, что когда пользователь выбирает группу для своего слова он видит чужие записи. Как сделать, чтобы пользователь видел лишь свои группы слов?
