Я создал следующие модели.Многие учетные записи принадлежат одному компьютеру.
class Computer(models.Model):
name = models.CharField(max_length=256)
def __str__(self):
return str(self.name)
class Accounts(models.Model):
computer = models.ForeignKey(Computer, on_delete=models.CASCADE, related_name='related_name_accounts')
username = models.CharField(max_length=10)
def __str__(self):
return str(self.username)
Теперь я хочу создать форму, в которой я могу выбрать одного пользователя из выпадающего списка всех пользователей, принадлежащих компьютеру
class ComputerForm(forms.ModelForm):
class Meta:
model = Computer
exclude = ['name',]
def __init__(self, *args, **kwargs):
super(ComputerForm, self).__init__(*args, **kwargs)
self.fields['user']=forms.ModelChoiceField(queryset=Computer.related_name_accounts.all())
* 1006.* Но я получаю сообщение об ошибке
У объекта 'ReverseManyToOneDescriptor' нет атрибута 'all'
Как мне настроить набор запросов в __init__
, чтобы отобразить всех пользователейкомпьютера?
Редактировать:
>>> x = Computer.objects.filter(pk=3).get()
>>> x.related_name_accounts.all()
Мне как-то нужно передать динамический pk в ModelForm?