Я использую DAL, чтобы предоставить выпадающий список для выбора, например:
class OccupationsModel(models.Model):
Occupation_Code = models.CharField(max_length = 20, primary_key=True)
Occupation_Title = models.CharField(max_length = 150, unique=True)
Occupation_Desc = models.CharField(max_length = 1000)
class Meta:
db_table = 'Occupation_Info'
def __str__(self):
return self.Occupation_Title
Обратите внимание, что код занятия - это мой ПК, в то время как я использую str , чтобы отобразить Activity_title в качестве дисплея. В основном все работает нормально, но затем я использую экземпляр для предварительного заполнения формы, заголовок не отображается. Поле формы пустое. У меня есть другие похожие модели, в которых ПК такой же, как дисплей, и они работают нормально. Так что я почти уверен, что чего-то здесь не хватает.
Вот мой вид DAL:
class OccCreateView(CreateView):
model = OccupationsModel
template_name = 'dashboard/input_page.html'
form_class = InputForm
class occautocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
qs = OccupationsModel.objects.all().order_by('Occupation_Code')
# Don't forget to filter out results depending on the visitor !
if not self.request.user.is_authenticated:
qs = qs[:3]
if self.q:
qs = qs[:3]
if self.q:
qs = qs.filter(Occupation_Title__icontains = self.q)
return qs
Вот моя форма:
def miscuserinfo_view(request):
misc_user_info = MiscUserInfoModel.objects.get(user = request.user.id)
if request.method == 'POST':
if form.is_valid():
obj = form.save(commit=False)
# do something here with the form
obj.save()
return HttpResponseRedirect(reverse('registration:userprofile'))
else: # Pre-populate with existing data that user entered before
form = MiscUserInfoForm(instance = misc_user_info)
return render(request, "registration/miscinfo_page.html", {'form': form})
И вот что я вижу:
Любая помощь приветствуется. Спасибо.