Я только недавно начал использовать представления на основе классов, и я до сих пор не знаю, как правильно выбрать правильное значение выпадающего списка.Django UpdateView: установите выпадающие списки на выбранное значение
У меня есть простой UpdateView вроде этого:
class SomeUpdate(PermissionRequiredMixin, UpdateView):
model = SomeModel
form_class = SomeCreateForm
permission_required = 'app.some_model'
template_name_suffix = '_update_form'
raise_exception = True
def form_valid(self, form):
from_page = self.request.GET.get('from')
if from_page:
self.success_url = self.request.GET.get('from')
else:
self.success_url = "/somewhere/"
return super(SomeUpdate, self).form_valid(form)
В то время как это работает, и это также заполняет CharFields
и т.д., выпадающие остаться невыбранными, что делает его очень неудобно использовать. Я хочу, чтобы выбранное поле объекта уже было выбрано, когда вы собираетесь его редактировать (UpdateView).
form
Используется только стандарт ModelForm
с определенными полями. Само поле является Foreignkey
.
Я попытался использовать get_initial(self)
и т. Д., Чтобы установить выпадающее значение, но без успеха.
Правильное выпадающее значение для данной модели уже должно быть заполнено для вас, если вы работаете с экземпляром модели (что делает UpdateView). У экземпляра, который вы показываете, есть допустимое значение, заданное для данного внешнего ключа? – Sayse
Да, это должно быть правильно. Я только что проверил, и через него я могу получить доступ к выбранному иностранному ключу. Ни UpdateView, ни его использование через панель администратора также не порождают никаких ошибок. Но оба они не отбирают его. С другой стороны, поля ManyToMany показывают правильные отношения. –