Как создать выпадающий список в django динамически, я перепробовал все способы, но у меня не получается, буквально каждый способ проходит из представлений и из моделей
views.py
@user_passes_test(is_manager)
def fetch_set(request, book_id):
set_list = []
clicked_book = Book.objects.get(pk=book_id)
url = clicked_book.url.split("/")[4].split(".")[0]
try:
repo = requests.get("https://api.github.com/repos/{}/{}/branches".format(github_user, url), headers = headers, proxies=proxy)
repo = json.loads(repo.text)
for branch in repo:
set_list.append(branch['name'])
except Exception as e:
messages.error(request, e)
context = {
'set': SetCreationForm(initial={'repo_name':url, 'acronym': set_list , \
'book':clicked_book}),
'list': set_list,
'sets': Set.objects.filter(pk=book_id),
'id': book_id,
}
if request.method == 'POST':
form_1 = SetCreationForm(request.POST)
context = {'set': form_1, 'id': book_id}
try:
if form_1.is_valid():
form_1.save()
messages.success(request, 'Set is fetched.')
return redirect('booksNsets:sets-page')
except Exception as e:
# messages.WARNING(request, e)
form_1.add_error(None, e)
return render(request, 'booksNsets/fetch_repo.html', context)
return render(request, 'booksNsets/fetch_repo.html', context)
models.py
forms.py
class SetCreationForm(forms.ModelForm):
class Meta():
model = Set
fields = ('book', 'repo_name','acronym',
'start_page', 'end_page', 'notes')
BRANCH_CHOICES = [tuple([x,x]) for x in 'acronym']
widgets = {'notes': forms.Textarea(attrs={
'rows': 6, 'cols': 35,
'style': 'resize:none;'})
}
acronym = forms.ChoiceField(widget = forms.ChoiceField(attrs={
'acronym': BRANCH_CHOICES}))
def clean(self):
cleaned_data = self.cleaned_data
# check for repo existance
try:
repo = g.get_repo(f"{github_user}/{cleaned_data['repo_name']}")
except:
raise ValidationError('Repository does not exists.')
return cleaned_data
Здесь есть views.py, models.py, forms.py и я попробовал все возможности и понял как это работает, но я получаю ту или иную ошибку, пожалуйста, помогите мне с кодом и дайте точно какой код я должен изменить и написать его, потому что я пробовал все способы, но я не получаю .
Я хочу, чтобы тег акронима был в выпадающем списке
Посмотрите это
Я получаю это в списке, но я хочу, чтобы это было в выпадающем списке
PIC:- СМОТРИТЕ ЭТОТ ВЫВОД