Как я могу добавить правильные данные в существующее поле выбора и сохранить их в базе данных: Django
Я хочу добавить несколько вариантов выбора к выходящему полю fieldchoice из базы данных,
Я сделал это в своем views.py:
. def operation(request):
if request.method == 'GET':
form = FormOperation(instance=request.user, )
var = Metry.objects.filter(user=request.user).last().profile.name
varr = Metry.objects.filter(user=request.user).last().profile.category
form.fields['dite'].choices.append((varr, var))
print(form.fields['dite'].choices)
else:
if request.user.is_authenticated:
form = FormOperation(request.POST, )
if form.is_valid():
form.save()
return render(request, 'pages/operation.html', {'form': form})
models.py:
dite = models.CharField(null = True, max_length=60,choices = CHOICES)
forms.py:
class FormOperation(forms.ModelForm):
class Meta:
model = Operation
exclude = ("user",)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
после "добавления" выбора, в качестве теста я сделал "print", чтобы увидеть выбор и это нормально, я могу видеть его в терминале, но не в браузере страницы моего django приложения, действительно, я могу видеть только первые варианты без учета того, что я добавил в мой views.py,... Любая помощь будет оценена по достоинству.
Вы можете использовать метод списка extend. (Убедитесь, что ваш CHOICES является LIST)
new_choices[('abc', 'def'),]
CHOICES.extend(new_choices)
(Примечание: Это не отменит существующее значение в поле select, а создаст другой выбор с тем же значением)