При создании формы не передается нужный список под select [django forms]
Надо вывести в форму select все поля module_name из базы. Почему из базы выборка не происходит?
forms.py
class PluginForm(forms.ModelForm):
class Meta:
model = Plugins
fields = ['module_name',]
widgets = {
'module_name': forms.Select(attrs={'class': 'form-control'}),
}
views.py
class ViewCurrentPlugins(DetailView):
model = Plugins
template_name = 'plugins/plugins_detail_view.html'
context_object_name = 'plugins_item'
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(**kwargs)
context['form'] = RelatedPluginForm()
print('context form ',context['form'])
return context
вывод print
<tr><th><label for="id_module_name">Имя модуля:</label></th><td><select name="module_name" class="form-control" maxlength="150" id="id_module_name">
</select></td></tr>
UPD
models.py
class Plugins(models.Model):
title = models.CharField(max_length=150, verbose_name='Название')
module_name = models.CharField(max_length=150, blank=True, verbose_name='Имя модуля')
def get_absolute_url(self):
return reverse('view_current_plugins', kwargs={'pk': self.pk, 'tag':'show'})
def save(self, *args, **kwargs):
self.full_clean()
return super(Plugins, self).save(*args, **kwargs)
def __str__(self):
return self.title
class Meta:
verbose_name = 'Плагин'
verbose_name_plural = 'Плагины'
ordering = ['title']
Ответы (1 шт):
Автор решения: Py_DG
→ Ссылка
Я могу быть не прав, потому как только учусь Джанге, так что не судите строго.
class ViewCurrentPlugins(DetailView):
model = Plagins
form = PluginForm
queryset = Plugins.objects.all()
context_object_name = 'plugins'
template_name = 'plugin_detail_view.html'
slug_url_kwarg = 'slug'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['plugins'] = self.plugins
return context
В целом, мне кажется проблема в отсутствии объявления кверисета queryset = Plugins.objects.all(). Я не очень хорош в работе с формами, так что еще раз, не судите строго и буду рад объективной критике))