Я разрабатываю форму Django для загрузки файлов.Форма основана на модели (файлы).Модель (файлы) имеет поле внешнего ключа (repo_id).Этот repo_id является первичным ключом в модели репозитория.
Я хочу, чтобы пользователи могли выбирать, в какой repo_id помещать файл. Мне нужно вставить значение в это поле, используя раскрывающийся список вform.
в шаблоне HTML раскрывающийся список отображается как «Repository object (repo_id)»
Я разработал две модели (файлы ирепозиторий) в файлах models.py, views.py, forms.py и HTML-шаблоне после обучения.Форма работает и сохраняет данные в таблице базы данных.
Я хочу обновить раскрывающееся меню только для отображения имен индикаторов в модели хранилища, а не объекта хранилища.
Вот мои коды.
models.py
from django.db import models
# Create your models here.
class Repository(models.Model):
source = models.TextField(db_column='source', blank=True, null=True) # Field name made lowercase.
indicator = models.TextField(db_column='indicator', blank=True, null=True) # Field name made lowercase.
key_aspect = models.TextField(db_column='key_aspect', blank=True, null=True)
category = models.TextField(db_column = 'category')
table_id = models.TextField(db_column='table_id', blank=True, null=True)
data_returning = models.TextField(db_column='data_returning', blank=True, null=True)
data_source = models.TextField(db_column='data_source', blank=True, null=True)
value = models.TextField(db_column='value', blank=True, null=True) # Field name made lowercase.
year = models.TextField(db_column='year', blank=True, null=True) # Field name made lowercase.
location = models.TextField(db_column='location', blank=True, null=True) # Field name made lowercase.
class files(models.Model):
repo_id = models.ForeignKey(Repository, on_delete = models.CASCADE)
username = models.CharField(db_column='username',max_length = 45)
date = models.DateTimeField(auto_now_add=True, db_column = 'date')
file = models.FileField(upload_to='documents/', db_column = 'file')
username = models.CharField(db_column='username',max_length = 45)
def __unicode__(self):
return self.indicator_name
forms.py
class DocumentForm(forms.ModelForm):
class Meta:
model = files
fields = ('username', 'file', 'repo_id')
views.py
@login_required
def file_upload(request):
websiterepository = Repository
#indicator_queryset = websiterepository.objects.filter(category = 'P').values_list('id','indicator')
if request.method == 'POST':
documentform = DocumentForm(request.POST, request.FILES)
if documentform.is_valid():
documentform.save()
return redirect('file_upload')
else:
form = DocumentForm()
#documentform = DocumentForm(prefix = 'documentform')
#searchform = SearchForm(indicator_queryset = indicator_queryset, prefix = 'searchform')
#form = {'documentform':documentform, 'searchform':searchform}
#return render(request, 'form_file_upload.html', form )
return render(request, 'form_file_upload.html', {'form':form })
Я знаю, что это просто пост.Я был бы очень признателен, если бы вы помогли мне разобраться в этом. Спасибо